Function at 0x5d31aa
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov edi, ecx
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [ebp - 0x10], eax
test ebx, ebx
jne 0x5d31dd
test esi, esi
je 0x5d31dd
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi], 2
jmp 0x5d431e
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp + 0x18]
mov edx, ebx
push esi
call fcn.005d4dd8
add esp, 4
xor esi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], esi
cmp eax, 1
mov dword [ebp - 0x48], eax
je 0x5d326a
mov cl, byte [ebp + 0x1c]
cmp eax, 3
je 0x5d3397
cmp eax, 2
mov esi, dword [ebp + 0x10]
jne 0x5d33ba
shr esi, 1
test cl, cl
jne 0x5d338f
mov ecx, dword [0x7aa270]
mov ebx, edi
lea edi, [esi + esi]
add edi, 2
call dword [section..00cfg]
push edi
mov edi, ebx
call ecx
add esp, 4
test eax, eax
je 0x5d4313
mov ebx, eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x5d325e
mov ecx, dword [ebp + 0x10]
and ecx, 0xfffffffe
push ecx
push eax
push ebx
call fcn.006cca40
add esp, 0xc
mov word [ebx + esi*2], 0
inc esi
jmp 0x5d338f
mov dword [ebp - 0x38], edi
cmp dword [ebp + 0x10], 0
je 0x5d3355
xor esi, esi
mov eax, ebx
mov ecx, dword [ebp + 0x10]
movzx edx, byte [eax]
test dl, dl
js 0x5d32b8
inc esi
inc eax
dec ecx
test al, 3
jne 0x5d334d
cmp ecx, 4
jb 0x5d334d
test dword [eax], 0x80808080
jne 0x5d334d
add esi, 4
add eax, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x5d3299
jmp 0x5d334d
mov edi, edx
and edi, 0xffffffe0
cmp edi, 0xc0
jne 0x5d32de
cmp ecx, 2
jb 0x5d32de
mov bl, byte [eax + 1]
and bl, 0xc0
cmp bl, 0x80
jne 0x5d32de
inc esi
add eax, 2
add ecx, 0xfffffffe
jmp 0x5d334d
mov edi, edx
and edi, 0xfffffff0
cmp edi, 0xe0
jne 0x5d330f
cmp ecx, 3
jb 0x5d330f
mov bl, byte [eax + 1]
and bl, 0xc0
cmp bl, 0x80
jne 0x5d330f
mov bl, byte [eax + 2]
and bl, 0xc0
cmp bl, 0x80
jne 0x5d330f
inc esi
add eax, 3
add ecx, 0xfffffffd
jmp 0x5d334d
and edx, 0xfffffff8
cmp edx, 0xf0
jne 0x5d334b
cmp ecx, 4
jb 0x5d334b
mov dl, byte [eax + 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x5d334b
mov dl, byte [eax + 2]
and dl, 0xc0
cmp dl, 0x80
jne 0x5d334b
mov dl, byte [eax + 3]
and dl, 0xc0
cmp dl, 0x80
jne 0x5d334b
add esi, 2
add eax, 4
add ecx, 0xfffffffc
jmp 0x5d334d
inc eax
dec ecx
test ecx, ecx
jne 0x5d327e
mov ecx, dword [0x7aa270]
lea edi, [esi + esi]
add edi, 2
call dword [section..00cfg]
push edi
call ecx
add esp, 4
test eax, eax
mov edi, dword [ebp - 0x38]
je 0x5d4313
mov ebx, eax
inc esi
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
push eax
call fcn.005d53e0
add esp, 4
mov word [eax], 0
mov dword [ebp - 0x20], ebx
jmp 0x5d3467
mov eax, dword [ebp + 0x10]
mov esi, eax
shr esi, 1
test cl, cl
je 0x5d341d
cmp eax, 2
jb 0x5d33b3
xor eax, eax
rol word [ebx + eax*2], 8
inc eax
cmp esi, eax
jne 0x5d33a9
mov eax, ebx
jmp 0x5d3464
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 2
jne 0x5d414f
mov dword [ebp - 0x38], edi
mov eax, esi
shr esi, 1
mov dword [ebp - 0x30], 0
cmp eax, 2
jae 0x5d4176
mov ecx, dword [0x7aa270]
mov ebx, dword [ebp - 0x30]
lea edi, [ebx + ebx]
add edi, 2
call dword [section..00cfg]
push edi
call ecx
add esp, 4
test eax, eax
mov edi, dword [ebp - 0x38]
je 0x5d4313
inc ebx
cmp dword [ebp + 0x10], 2
jae 0x5d424c
mov word [eax], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ebx
jmp 0x5d346a
mov ecx, dword [0x7aa270]
mov ebx, edi
lea edi, [esi + esi]
add edi, 2
call dword [section..00cfg]
push edi
mov edi, ebx
call ecx
add esp, 4
test eax, eax
je 0x5d4313
cmp dword [ebp + 0x10], 2
mov ebx, dword [ebp + 0xc]
jb 0x5d345d
xor ecx, ecx
movzx edx, word [ebx + ecx*2]
rol dx, 8
mov word [eax + ecx*2], dx
inc ecx
cmp esi, ecx
jne 0x5d344c
mov word [eax + esi*2], 0
inc esi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x20]
cmp byte [ebp + 0x20], 0
je 0x5d3492
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x5d3497
cmp esi, ebx
je 0x5d3497
mov ecx, dword [0x7aa26c]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
jmp 0x5d3497
cmp esi, dword [ebp + 0xc]
je 0x5d349c
mov eax, dword [ebp + 0x24]
mov dword [eax], esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x3c]
mov dword [eax + 0x28], esi
mov eax, dword [ebp - 0x24]
test eax, eax
mov ebx, dword [ebp - 0x48]
je 0x5d40e4
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x38], edi
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10]
xor ecx, ecx
mov edi, 0
test edx, edx
je 0x5d34cd
mov edi, dword [edx + 0x14]
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x3c]
lea edx, [edi + 0x20]
test edi, edi
cmove edx, edi
lea edi, [ebp - 0x1c]
mov dword [edi], edx
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
movzx ecx, word [esi + eax*2 - 2]
mov dword [ebp - 0x2c], ecx
mov word [esi + eax*2 - 2], 0
movzx edx, word [esi]
xor ecx, ecx
cmp edx, 0xfeff
sete cl
mov ebx, dword [ebp + 0x14]
mov edx, ebx
shr edx, 4
and edx, 3
mov edi, ebx
shr edi, 9
and edi, 4
or edi, edx
mov edx, ebx
shr edx, 2
and edx, 0x3c
test ebx, 0x408
setne byte [ebp - 0x3c]
bt ebx, 0xb
setae bl
and bl, byte [ebp - 0x3c]
mov byte [ebp - 0x3c], bl
dec eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x6c], esi
lea esi, [esi + ecx*2]
mov eax, dword [edx + 0x7573b4]
mov dword [ebp - 0x68], eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edi*4 + 0x7573f4]
mov dword [ebp - 0x64], eax
mov eax, edx
and eax, 0x22
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp + 8]
lea eax, [ecx + 0x10]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x28], ecx
movzx eax, word [esi]
mov edi, dword [ebp - 0x28]
mov ebx, esi
test ax, ax
je 0x5d409b
cmp ax, 0x3c
je 0x5d35fd
mov esi, ebx
cmp ax, 0x7f
ja 0x5d35a4
movzx ecx, ax
test byte [ecx + 0x7572a8], 8
je 0x5d35a4
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x80
jb 0x5d358a
cmp ax, 0x3c
je 0x5d35af
test ax, ax
jne 0x5d35ce
cmp byte [ebp - 0x3c], 0
je 0x5d3571
bt edx, 0xa
jae 0x5d35ce
cmp ax, 0x3c
jne 0x5d3571
cmp word [esi + 2], 0x2f
jne 0x5d3571
cmp dword [edi + 0x10], 0
jne 0x5d3571
bt edx, 0xb
cmovb ebx, esi
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x5d3606
mov ecx, edx
and ecx, 0x1000
jne 0x5d3606
movzx eax, word [ebx]
test ax, ax
je 0x5d409b
cmp ax, 0x3c
je 0x5d35fd
add ebx, 2
jmp 0x5d35e6
movzx ecx, word [ebx + 2]
add ebx, 2
jmp 0x5d365d
bt edx, 0xd
jae 0x5d3620
test eax, eax
je 0x5d3620
cmp dword [edi + 0x10], 0
jne 0x5d3620
cmp dword [edi + 8], 0
je 0x5d3d42
mov edx, dword [ebp - 0x1c]
mov ecx, edi
push 3
call fcn.005d4bfd
add esp, 4
test eax, eax
je 0x5d4349
mov dword [eax + 8], ebx
mov edi, dword [eax + 0xc]
mov ecx, dword [ebp - 0x64]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ebx, eax
movzx ecx, word [eax]
test cx, cx
mov edx, dword [ebp + 0x14]
je 0x5d409b
cmp cx, 0x7f
ja 0x5d36d0
movzx eax, cx
cmp byte [eax + 0x7572a8], 0
js 0x5d36d0
cmp cx, 0x21
je 0x5d37cd
cmp cx, 0x3f
mov dword [ebp - 0x28], edi
je 0x5d3963
cmp cx, 0x2f
jne 0x5d43b5
mov eax, edi
lea edi, [ebx + 2]
mov edx, dword [eax + 4]
test edx, edx
je 0x5d433a
add ebx, 4
mov esi, edi
movzx ecx, word [esi]
cmp ecx, 0x7f
ja 0x5d36bb
mov al, byte [ecx + 0x7572a8]
test al, 0x40
je 0x5d3c7c
add esi, 2
lea eax, [edx + 2]
add ebx, 2
cmp cx, word [edx]
mov edx, eax
je 0x5d36a5
jmp 0x5d433a
mov edx, dword [ebp - 0x1c]
mov ecx, edi
push 2
call fcn.005d4bfd
add esp, 4
test eax, eax
je 0x5d4349
mov dword [eax + 4], ebx
add ebx, 2
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x28], eax
movzx edi, word [ebx - 2]
cmp edi, 0x7f
ja 0x5d3705
test byte [edi + 0x7572a8], 0x40
je 0x5d3746
movzx edi, word [ebx]
cmp edi, 0x7f
ja 0x5d3716
test byte [edi + 0x7572a8], 0x40
je 0x5d374e
movzx edi, word [ebx + 2]
cmp edi, 0x7f
ja 0x5d3728
test byte [edi + 0x7572a8], 0x40
je 0x5d374b
movzx edi, word [ebx + 4]
mov cl, 0xc0
cmp edi, 0x7f
ja 0x5d3739
mov cl, byte [edi + 0x7572a8]
add ebx, 8
test cl, 0x40
jne 0x5d36f3
add ebx, 0xfffffffc
jmp 0x5d374e
add ebx, 0xfffffffe
jmp 0x5d374e
add ebx, 2
mov word [ebx], 0
lea esi, [ebx + 2]
cmp di, 0x3e
je 0x5d356b
movzx ecx, di
cmp di, 0x7f
ja 0x5d3776
test byte [ecx + 0x7572a8], 8
jne 0x5d3e75
test ecx, ecx
je 0x5d37bb
cmp di, 0x2f
jne 0x5d438e
movzx eax, word [esi]
cmp ax, 0x3e
je 0x5d37a1
test ax, ax
jne 0x5d438e
cmp word [ebp - 0x2c], 0x3e
jne 0x5d438e
xor ecx, ecx
cmp ax, 0x3e
sete cl
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x28], eax
lea esi, [esi + ecx*2]
jmp 0x5d356b
mov esi, ebx
cmp word [ebp - 0x2c], 0x3e
je 0x5d356b
jmp 0x5d43a3
movzx eax, word [ebx + 2]
cmp ax, 0x5b
je 0x5d3b0e
cmp ax, 0x44
je 0x5d3b99
cmp ax, 0x2d
jne 0x5d43ec
cmp word [ebx + 4], 0x2d
jne 0x5d440c
add ebx, 6
mov esi, edi
test dl, 2
je 0x5d3823
mov edx, dword [ebp - 0x1c]
mov ecx, edi
push 5
call fcn.005d4bfd
add esp, 4
test eax, eax
je 0x5d4349
mov esi, eax
mov dword [eax + 8], ebx
mov edx, dword [ebp + 0x14]
cmp dword [ebp - 0x54], 0x22
jne 0x5d3926
mov dword [ebp - 0x28], edi
xor eax, eax
mov dword [ebp - 0x30], 0
add ebx, 4
mov edi, ebx
mov ebx, eax
movzx ecx, word [edi - 4]
cmp ecx, 0x7f
ja 0x5d3852
test byte [ecx + 0x7572a8], 0x20
jne 0x5d388c
movzx ecx, word [edi - 2]
cmp ecx, 0x7f
ja 0x5d3864
test byte [ecx + 0x7572a8], 0x20
jne 0x5d3891
movzx ecx, word [edi]
cmp ecx, 0x7f
ja 0x5d3875
test byte [ecx + 0x7572a8], 0x20
jne 0x5d3899
movzx ecx, word [edi + 2]
cmp ecx, 0x7f
ja 0x5d3887
test byte [ecx + 0x7572a8], 0x20
jne 0x5d3896
add edi, 8
jmp 0x5d3840
add edi, 0xfffffffc
jmp 0x5d3899
add edi, 0xfffffffe
jmp 0x5d3899
add edi, 2
cmp cx, 0xd
je 0x5d38af
cmp cx, 0x2d
je 0x5d38f7
test cx, cx
jne 0x5d391c
jmp 0x5d437b
lea ebx, [edi + 2]
mov word [edi], 0xa
cmp word [edi + 2], 0xa
jne 0x5d3839
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x30]
test ecx, ecx
mov esi, eax
je 0x5d38e4
mov edx, ecx
sub edx, esi
sub edx, esi
sub ebx, ecx
push ebx
push ecx
push edx
call fcn.006cca40
mov edx, dword [ebp + 0x14]
add esp, 0xc
add edi, 4
inc esi
mov eax, esi
mov ebx, edi
mov dword [ebp - 0x30], edi
mov esi, dword [ebp - 0x34]
jmp 0x5d3839
cmp word [edi + 2], 0x2d
jne 0x5d391c
movzx ecx, word [edi + 4]
cmp cx, 0x3e
je 0x5d3de1
test cx, cx
jne 0x5d391c
cmp word [ebp - 0x2c], 0x3e
je 0x5d3de1
add edi, 2
mov ebx, edi
jmp 0x5d3839
movzx eax, word [ebx]
cmp ax, 0x2d
je 0x5d3939
test ax, ax
jne 0x5d395e
jmp 0x5d440f
cmp word [ebx + 2], 0x2d
jne 0x5d395e
movzx eax, word [ebx + 4]
cmp ax, 0x3e
je 0x5d3e20
test ax, ax
jne 0x5d395e
cmp word [ebp - 0x2c], 0x3e
je 0x5d3e20
add ebx, 2
jmp 0x5d3926
lea eax, [ebx + 2]
movzx ecx, word [ebx + 2]
cmp ecx, 0x80
jae 0x5d397f
cmp byte [ecx + 0x7572a8], 0
jns 0x5d43d4
mov dword [ebp - 0x50], eax
lea eax, [ebx + 6]
mov dword [ebp - 0x30], eax
xor edx, edx
xor esi, esi
mov eax, ecx
cmp ax, 0x7f
ja 0x5d39a4
mov edi, edx
movzx edx, ax
test byte [edx + 0x7572a8], 0x40
mov edx, edi
je 0x5d39b3
movzx eax, word [ebx + esi*2 + 4]
inc esi
add edx, 0xfffffffe
add dword [ebp - 0x30], 2
jmp 0x5d398e
mov dword [ebp - 0x34], ecx
mov ecx, ebx
sub ecx, edx
mov dword [ebp - 0x4c], ecx
lea edx, [ecx + 2]
mov dword [ebp - 0x40], edx
test ax, ax
je 0x5d43b0
mov ecx, dword [ebp - 0x34]
and ecx, 0xffdf
cmp cx, 0x58
mov edx, dword [ebp + 0x14]
jne 0x5d3a4b
movzx ecx, word [ebx + 4]
and ecx, 0xffffffdf
cmp cx, 0x4d
jne 0x5d3a4b
movzx ecx, word [ebx + 6]
and ecx, 0xffffffdf
cmp cx, 0x4c
sete dl
cmp esi, 3
sete cl
and cl, dl
mov byte [ebp - 0x34], cl
mov edx, 1
mov ecx, 0x100
cmovne edx, ecx
test dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x14]
je 0x5d3a50
cmp byte [ebp - 0x34], 0
je 0x5d3a8b
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + 0xc], 0
jne 0x5d43b0
mov edx, dword [ebp - 0x1c]
push 7
call fcn.005d4bfd
add esp, 4
mov dword [ebp - 0x28], eax
test eax, eax
je 0x5d43e1
mov al, 1
mov dword [ebp - 0x34], eax
jmp 0x5d3aad
test dl, 1
jne 0x5d3a8b
mov ecx, dword [ebp - 0x40]
cmp ax, 0x3f
je 0x5d3a68
test ax, ax
je 0x5d4389
movzx eax, word [ecx + 2]
jmp 0x5d3a86
movzx eax, word [ecx + 2]
cmp ax, 0x3e
je 0x5d3d6a
test ax, ax
jne 0x5d3a86
cmp word [ebp - 0x2c], 0x3e
je 0x5d3d74
add ecx, 2
jmp 0x5d3a53
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
push 6
call fcn.005d4bfd
add esp, 4
mov dword [ebp - 0x28], eax
test eax, eax
je 0x5d43e1
mov dword [ebp - 0x34], 0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x50]
mov dword [eax + 4], ecx
movzx ecx, word [ebx + esi*2 + 2]
lea eax, [ebx + 4]
mov word [ebx + esi*2 + 2], 0
cmp ecx, 0x3f
jne 0x5d3cda
movzx eax, word [eax + esi*2]
cmp ax, 0x3e
je 0x5d3aef
test ax, ax
jne 0x5d43ce
cmp word [ebp - 0x2c], 0x3e
jne 0x5d43ce
xor ecx, ecx
cmp ax, 0x3e
sete cl
lea esi, [ebx + ecx*2]
sub esi, edi
add esi, 4
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x28], eax
jmp 0x5d3e5c
cmp word [ebx + 4], 0x43
jne 0x5d441c
cmp word [ebx + 6], 0x44
jne 0x5d4451
cmp word [ebx + 8], 0x41
jne 0x5d4458
cmp word [ebx + 0xa], 0x54
jne 0x5d445f
cmp word [ebx + 0xc], 0x41
jne 0x5d4466
cmp word [ebx + 0xe], 0x5b
jne 0x5d446d
add ebx, 0x10
test dl, 4
jne 0x5d3d7c
movzx eax, word [ebx]
cmp ax, 0x5d
je 0x5d3b6f
test ax, ax
jne 0x5d3b94
jmp 0x5d4407
cmp word [ebx + 2], 0x5d
jne 0x5d3b94
movzx eax, word [ebx + 4]
cmp ax, 0x3e
je 0x5d3fe7
test ax, ax
jne 0x5d3b94
cmp word [ebp - 0x2c], 0x3e
je 0x5d3fe7
add ebx, 2
jmp 0x5d3b5c
cmp word [ebx + 4], 0x4f
jne 0x5d4393
cmp word [ebx + 6], 0x43
jne 0x5d4393
cmp word [ebx + 8], 0x54
jne 0x5d4393
cmp word [ebx + 0xa], 0x59
jne 0x5d4393
cmp word [ebx + 0xc], 0x50
jne 0x5d4393
movzx eax, word [ebx + 0xe]
cmp ax, 0x45
je 0x5d3bee
test ax, ax
jne 0x5d4393
cmp word [ebp - 0x2c], 0x45
jne 0x5d4393
lea edx, [ebx - 2]
cmp dword [edi + 0xc], 0
jne 0x5d4482
mov dword [ebp - 0x28], edi
movzx eax, word [ebp - 0x2c]
lea ecx, [ebp - 0x1c]
push eax
call fcn.005d6c06
add esp, 4
test eax, eax
mov edx, dword [ebp + 0x14]
je 0x5d40ab
mov esi, eax
cmp word [eax], 0
je 0x5d3c29
mov word [esi], 0
add esi, 2
bt edx, 9
jae 0x5d4051
add ebx, 0x10
movzx eax, word [ebx]
cmp ax, 0x7f
mov ecx, dword [ebp - 0x28]
ja 0x5d3c5c
movzx eax, ax
test byte [eax + 0x7572a8], 8
je 0x5d3c5c
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x80
jb 0x5d3c42
mov edx, dword [ebp - 0x1c]
push 8
call fcn.005d4bfd
add esp, 4
test eax, eax
je 0x5d448f
mov dword [eax + 8], ebx
mov edx, dword [ebp + 0x14]
jmp 0x5d4051
mov dword [ebp - 0x34], edi
movzx edi, word [edx]
mov word [ebp - 0x30], di
cmp word [ebp - 0x30], 0
jne 0x5d4423
test al, 8
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x28]
je 0x5d3cb1
mov esi, ebx
movzx ecx, word [ebx]
cmp ecx, 0x7f
ja 0x5d3cb1
lea ebx, [esi + 2]
test byte [ecx + 0x7572a8], 8
jne 0x5d3c9b
mov eax, dword [eax + 0xc]
cmp cx, 0x3e
mov dword [ebp - 0x28], eax
je 0x5d3d4a
test cx, cx
jne 0x5d4444
cmp word [ebp - 0x2c], 0x3e
je 0x5d356b
jmp 0x5d4444
cmp cx, 0x7f
ja 0x5d43ce
test byte [ecx + 0x7572a8], 8
je 0x5d43ce
sub eax, edi
mov edi, dword [ebp - 0x30]
mov esi, eax
mov ecx, edi
movzx edx, word [eax]
cmp edx, 0x7f
ja 0x5d3d11
lea eax, [esi + 2]
lea edi, [ecx + 2]
test byte [edx + 0x7572a8], 8
jne 0x5d3cf6
mov eax, dword [ebp - 0x28]
cmp dx, 0x3f
je 0x5d3d28
test dx, dx
je 0x5d4386
movzx edx, word [ecx]
jmp 0x5d3d3d
movzx edx, word [ecx]
cmp dx, 0x3e
je 0x5d3d52
test dx, dx
jne 0x5d3d3d
cmp word [ebp - 0x2c], 0x3e
je 0x5d3d52
add ecx, 2
jmp 0x5d3d14
mov dword [edi + 8], ebx
jmp 0x5d363d
add esi, 2
jmp 0x5d356b
cmp byte [ebp - 0x34], 0
mov edx, dword [ebp + 0x14]
je 0x5d3e41
mov word [ecx - 2], 0x2f
jmp 0x5d3e5c
mov eax, 2
jmp 0x5d3e59
xor eax, eax
inc eax
jmp 0x5d3e59
mov edx, dword [ebp - 0x1c]
mov ecx, edi
push 4
call fcn.005d4bfd
add esp, 4
test eax, eax
je 0x5d4349
mov esi, eax
mov dword [eax + 8], ebx
mov edx, dword [ebp + 0x14]
test dl, 0x20
jne 0x5d3fec
movzx eax, word [ebx]
cmp ax, 0x5d
je 0x5d3db7
test ax, ax
jne 0x5d3ddc
jmp 0x5d4407
cmp word [ebx + 2], 0x5d
jne 0x5d3ddc
movzx eax, word [ebx + 4]
cmp ax, 0x3e
je 0x5d4036
test ax, ax
jne 0x5d3ddc
cmp word [ebp - 0x2c], 0x3e
je 0x5d4036
add ebx, 2
jmp 0x5d3da4
mov ecx, edi
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x5d3e06
add ebx, ebx
mov ecx, eax
sub ecx, ebx
mov edx, edi
sub edx, eax
push edx
push eax
push ecx
call fcn.006cca40
mov edx, dword [ebp + 0x14]
add esp, 0xc
mov ecx, edi
sub ecx, ebx
mov word [ecx], 0
xor eax, eax
cmp word [edi + 4], 0x3e
sete al
lea esi, [edi + eax*2]
add esi, 4
jmp 0x5d4051
mov dword [ebp - 0x28], edi
test dl, 2
je 0x5d3e2d
mov word [ebx], 0
xor ecx, ecx
cmp ax, 0x3e
sete cl
lea esi, [ebx + ecx*2]
add esi, 4
jmp 0x5d4051
mov dword [eax + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x28], eax
mov word [ecx - 2], 0
xor eax, eax
cmp word [ecx], 0x3e
sete al
lea esi, [ecx + eax*2]
test esi, esi
je 0x5d40ab
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
and eax, 0xf
cmp eax, 7
jne 0x5d356b
movzx eax, word [esi]
mov edi, esi
cmp ax, 0x7f
ja 0x5d3eab
add edi, 2
movzx ecx, ax
mov cl, byte [ecx + 0x7572a8]
test cl, 8
je 0x5d3ea0
movzx eax, word [edi]
add edi, 2
cmp eax, 0x80
jb 0x5d3e83
jmp 0x5d3ea8
test cl, cl
jns 0x5d4008
add edi, 0xfffffffe
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
call fcn.005d4ca0
test eax, eax
je 0x5d434e
mov esi, eax
mov dword [eax + 4], edi
mov ecx, edi
movzx eax, word [edi]
cmp eax, 0x7f
ja 0x5d3ed8
mov dl, byte [eax + 0x7572a8]
test dl, 0x40
je 0x5d3f28
movzx eax, word [ecx + 2]
cmp eax, 0x7f
ja 0x5d3eec
mov dl, byte [eax + 0x7572a8]
test dl, 0x40
je 0x5d3f20
movzx eax, word [ecx + 4]
cmp eax, 0x7f
ja 0x5d3f00
mov dl, byte [eax + 0x7572a8]
test dl, 0x40
je 0x5d3f25
movzx eax, word [ecx + 6]
cmp eax, 0x7f
ja 0x5d3f19
mov dl, byte [eax + 0x7572a8]
lea edi, [ecx + 8]
test dl, 0x40
jne 0x5d3ec3
jmp 0x5d3f34
add ecx, 8
mov edi, ecx
jmp 0x5d3ec3
add ecx, 2
jmp 0x5d3f28
add ecx, 4
mov word [ecx], 0
add ecx, 2
mov edi, ecx
jmp 0x5d3f3a
mov word [ecx + 6], 0
test dl, 8
je 0x5d3f65
movzx eax, word [edi]
cmp ax, 0x7f
ja 0x5d3f62
movzx ecx, ax
test byte [ecx + 0x7572a8], 8
je 0x5d3f62
movzx eax, word [edi + 2]
add edi, 2
cmp eax, 0x80
jb 0x5d3f48
add edi, 2
cmp ax, 0x3d
jne 0x5d4335
movzx ebx, word [edi]
cmp bx, 0x7f
ja 0x5d3f93
movzx eax, bx
test byte [eax + 0x7572a8], 8
je 0x5d3f93
movzx ebx, word [edi + 2]
add edi, 2
cmp ebx, 0x80
jb 0x5d3f78
cmp bx, 0x27
je 0x5d3fa3
cmp bx, 0x22
jne 0x5d4335
add edi, 2
mov dword [esi + 8], edi
mov ecx, dword [ebp - 0x68]
call dword [section..00cfg]
movzx eax, bx
push eax
push edi
call ecx
add esp, 8
test eax, eax
je 0x5d435b
mov edi, eax
movzx eax, word [eax]
cmp eax, 0x7f
mov edx, dword [ebp + 0x14]
ja 0x5d4335
cmp byte [eax + 0x7572a8], 0
jns 0x5d3e7a
jmp 0x5d4335
mov dword [ebp - 0x28], edi
jmp 0x5d403e
mov dword [ebp - 0x28], edi
movzx edx, word [ebp - 0x2c]
mov ecx, ebx
call fcn.005d6af0
mov edx, dword [ebp + 0x14]
mov ebx, eax
test eax, eax
jne 0x5d4041
jmp 0x5d4497
mov esi, edi
cmp ax, 0x3e
je 0x5d356b
cmp ax, 0x2f
jne 0x5d405b
movzx eax, word [edi]
cmp ax, 0x3e
jne 0x5d4077
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x28], eax
add edi, 2
mov esi, edi
jmp 0x5d356b
mov dword [ebp - 0x28], edi
mov word [ebx], 0
add ebx, 2
xor eax, eax
cmp word [ebx + 2], 0x3e
sete al
lea esi, [ebx + eax*2]
add esi, 2
test esi, esi
jne 0x5d356b
jmp 0x5d40ab
test ax, ax
jne 0x5d449c
lea esi, [edi - 2]
cmp word [ebp - 0x2c], 0x3e
je 0x5d356b
jmp 0x5d449c
test ax, ax
jne 0x5d449f
cmp word [ebp - 0x2c], 0x3e
jne 0x5d449f
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x28], eax
mov esi, edi
jmp 0x5d356b
cmp edi, dword [ebp + 8]
je 0x5d40ab
mov dword [ebp - 0x18], ebx
mov eax, 0xe
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, edx
sub ecx, dword [ebp - 0x6c]
sar ecx, 1
test edx, edx
cmove ecx, edx
test eax, eax
je 0x5d40fd
test ecx, ecx
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x48]
jle 0x5d40e0
cmp ecx, dword [ebp - 0x44]
sete dl
cmp word [ebp - 0x2c], 0
sete dh
and dh, dl
movzx edx, dh
sub ecx, edx
mov edx, ecx
jmp 0x5d40f0
shr ecx, 8
not ecx
and ecx, 0x10
mov eax, ecx
xor edx, edx
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [edi + 8], ebx
jmp 0x5d4321
xor eax, eax
cmp word [ebp - 0x2c], 0x3c
sete al
mov edx, ecx
cmove edx, dword [ebp - 0x44]
lea eax, [eax + eax*4]
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x48]
je 0x5d40f0
and dword [ebp - 0x60], 0x1000
jne 0x5d40f0
mov edx, dword [ebp - 0x5c]
lea eax, [edx + 0x18]
test edx, edx
cmove eax, dword [ebp - 0x58]
mov edx, dword [eax]
mov eax, 0x10
test edx, edx
je 0x5d4244
mov esi, dword [edx]
and esi, 0xf
cmp esi, 2
je 0x5d4342
mov edx, dword [edx + 0x18]
jmp 0x5d4134
lea ecx, [eax - 5]
cmp ecx, 1
ja 0x5d41ec
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x24]
cmp eax, 5
jne 0x5d4301
push esi
push ebx
call fcn.005d5242
jmp 0x5d4308
mov dword [ebp - 0x30], 0
mov ecx, esi
movzx eax, word [ebx]
rol ax, 8
movzx edi, ax
cmp edi, 0xd7ff
jbe 0x5d419c
mov eax, edi
not eax
test eax, 0xe000
jne 0x5d41b2
inc dword [ebp - 0x30]
add ebx, 2
xor edi, edi
dec edi
mov eax, ebx
mov ebx, eax
add ecx, edi
jne 0x5d417f
jmp 0x5d33df
and edi, 0xfc00
lea eax, [ebx + 2]
cmp edi, 0xd800
jne 0x5d41e7
cmp ecx, 2
jb 0x5d41e7
movzx edi, word [eax]
and edi, 0xfc
cmp edi, 0xdc
jne 0x5d41e7
add dword [ebp - 0x30], 2
add ebx, 4
mov edi, 0xfffffffe
jmp 0x5d41a5
xor edi, edi
dec edi
jmp 0x5d41a7
cmp eax, 9
jne 0x5d4313
mov ecx, dword [0x7aa270]
mov eax, dword [ebp + 0x10]
lea esi, [eax + eax]
add esi, 2
call dword [section..00cfg]
push esi
call ecx
add esp, 4
test eax, eax
je 0x5d4313
mov edx, dword [ebp + 0x10]
lea ecx, [edx + 1]
test edx, edx
je 0x5d436b
xor edx, edx
mov ebx, dword [ebp + 0xc]
movzx esi, byte [ebx + edx]
mov word [eax + edx*2], si
inc edx
cmp dword [ebp + 0x10], edx
jne 0x5d422b
mov word [eax + edx*2], 0
jmp 0x5d4370
mov edx, dword [ebp - 0x44]
jmp 0x5d40f0
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], eax
mov edi, eax
movzx eax, word [edx]
rol ax, 8
movzx ebx, ax
cmp ebx, 0xd7ff
jbe 0x5d4275
mov ecx, ebx
not ecx
test ecx, 0xe000
jne 0x5d428b
mov word [edi], ax
add edi, 2
add edx, 2
xor eax, eax
dec eax
mov ecx, edx
mov edx, ecx
add esi, eax
jne 0x5d4257
jmp 0x5d42e8
and ebx, 0xfc00
lea ecx, [edx + 2]
cmp ebx, 0xd800
jne 0x5d42e3
cmp esi, 2
jb 0x5d42e3
movzx ebx, word [ecx]
rol bx, 8
mov dword [ebp - 0x28], ebx
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x5d42e3
mov ecx, 0x3ff
and eax, ecx
or eax, 0xd800
mov word [edi], ax
mov eax, dword [ebp - 0x28]
and eax, ecx
or eax, 0xdc00
mov word [edi + 2], ax
add edi, 4
add edx, 4
mov eax, 0xfffffffe
jmp 0x5d4281
xor eax, eax
dec eax
jmp 0x5d4283
mov word [edi], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x38]
jmp 0x5d346a
push esi
push ebx
call fcn.005d530e
add esp, 8
test al, al
jne 0x5d346a
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi], 3
mov dword [edi + 4], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006c9121
mov eax, edi
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x18], edi
jmp 0x5d4361
mov dword [ebp - 0x18], edi
jmp 0x5d40a3
xor eax, eax
jmp 0x5d40e0
mov dword [ebp - 0x18], ebx
jmp 0x5d4351
mov dword [ebp - 0x18], edi
mov eax, 3
jmp 0x5d40a8
mov eax, dword [esi + 8]
mov dword [ebp - 0x18], eax
mov eax, 0xc
jmp 0x5d40a8
mov word [eax], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ecx
jmp 0x5d346a
mov eax, dword [esi + 8]
mov dword [ebp - 0x18], eax
jmp 0x5d4412
add ecx, 0xfffffffe
mov dword [ebp - 0x18], ecx
jmp 0x5d43d7
mov dword [ebp - 0x18], esi
jmp 0x5d43a6
add ebx, 2
mov dword [ebp - 0x18], ebx
mov eax, 5
jmp 0x5d40a8
mov dword [ebp - 0x18], ebx
mov eax, 0xb
jmp 0x5d40a8
mov eax, dword [ebp - 0x40]
jmp 0x5d43d4
mov edx, dword [ebp - 0x2c]
xor edx, 0x3f
xor eax, eax
or cx, dx
sete al
mov dword [ebp - 0x18], ebx
add eax, 5
jmp 0x5d40a8
mov eax, dword [ebp - 0x4c]
add eax, 4
mov dword [ebp - 0x18], eax
mov eax, 6
jmp 0x5d40a8
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], eax
jmp 0x5d4351
add ebx, 2
test ax, ax
jne 0x5d43fb
cmp word [ebp - 0x2c], 0x2d
je 0x5d440f
test ax, ax
jne 0x5d4396
cmp word [ebp - 0x2c], 0x5b
jne 0x5d4396
mov dword [ebp - 0x18], ebx
jmp 0x5d4478
add ebx, 4
mov dword [ebp - 0x18], ebx
mov eax, 7
jmp 0x5d40a8
mov eax, 2
jmp 0x5d4472
movzx eax, word [ebp - 0x30]
test cx, cx
jne 0x5d4439
cmp ax, word [ebp - 0x2c]
jne 0x5d4439
cmp word [edx + 2], 0
je 0x5d4444
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], eax
jmp 0x5d40a3
mov dword [ebp - 0x18], esi
mov eax, 0xd
jmp 0x5d40a8
mov eax, 3
jmp 0x5d4472
mov eax, 4
jmp 0x5d4472
mov eax, 5
jmp 0x5d4472
mov eax, 6
jmp 0x5d4472
mov eax, 7
lea eax, [ebx + eax*2]
mov dword [ebp - 0x18], eax
mov eax, 8
jmp 0x5d40a8
mov dword [ebp - 0x18], edx
mov eax, 9
jmp 0x5d40a8
mov dword [ebp - 0x18], esi
jmp 0x5d4351
mov eax, dword [esi + 8]
jmp 0x5d4475
add edi, 0xfffffffe
mov dword [ebp - 0x18], edi
jmp 0x5d43a6