Function at 0x435bfb
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov eax, 1
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xe8
mov dword [ebp - 0xc8], 0
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
test edi, edi
je 0x437052
mov eax, dword [edi + 0x54]
test eax, eax
je 0x435c38
cmp dword [edi + 0xd4], 1
je 0x437052
cmp dword [edi + 0xac], 0
jne 0x435c48
mov eax, edi
call fcn.00429482
test esi, esi
setg dl
xor eax, eax
cmp dword [ebp + 0xc], 0
setne al
test eax, edx
je 0x435c75
cmp dword [ebp + 0x14], 0
jne 0x435c75
mov eax, dword [ebp + 0xc]
cmp byte [eax + esi - 1], 0xd
jne 0x435c75
mov dword [ebp - 0xc8], 1
dec esi
test esi, esi
setg dl
xor eax, eax
cmp dword [ebp + 0xc], 0
setne al
test eax, edx
je 0x435d03
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x435d03
mov eax, dword [ecx]
test eax, eax
je 0x435d03
cmp dword [edi + 0xac], 0xffffffff
je 0x435d5a
mov edx, dword [ecx + 0xc]
mov eax, dword [eax + 0x10]
mov ebx, edx
sub ebx, dword [eax]
mov dword [ebp - 0xcc], ebx
mov ebx, dword [ecx + 0x10]
push dword [ebp + 0xc]
push esi
sub ebx, edx
push dword [ecx]
call fcn.00448648
add esp, 0xc
test eax, eax
jns 0x435ce1
or eax, 0xffffffff
mov dword [edi + 0x54], 0xffffffff
mov dword [edi + 0xd4], 1
jmp 0x437052
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0xcc]
add eax, dword [edx]
mov dword [ecx + 0xc], eax
add eax, ebx
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 4]
add eax, dword [edx]
mov dword [ecx + 0x14], eax
jmp 0x435d5a
cmp dword [edi + 0xac], 0xffffffff
je 0x435d5a
mov eax, dword [edi + 0x24]
test eax, eax
je 0x435d5a
mov eax, dword [eax]
test eax, eax
je 0x435d5a
cmp dword [eax + 0xc], 0
je 0x435d5a
cmp dword [eax + 0x10], 0
je 0x435d5a
mov edx, dword [eax + 0x14]
test edx, edx
je 0x435d5a
push edx
push dword [eax + 0x10]
push dword [eax + 0xc]
call fcn.00476bf9
add esp, 0xc
test eax, eax
jns 0x435d5a
push str.xmlParseChunk:_encoder_error_n
push dword [0x667cd4]
call dword [0x4fa8b8]
mov eax, 0x51
jmp 0x437052
mov edx, dword [edi + 0x24]
test edx, edx
je 0x436f73
mov eax, dword [edx + 0x10]
sub eax, dword [edx + 0xc]
cmp eax, 0x1000
jle 0x435d83
mov eax, edi
call fcn.00429c47
mov dword [edi + 0xcc], 0
lea eax, [ebp - 0xb0]
lea edx, [ebp - 0xb4]
push eax
mov eax, edi
call fcn.0043432c
pop esi
cmp dword [edi + 0x54], 0
je 0x435dba
cmp dword [edi + 0xd4], 1
je 0x436f73
jmp 0x435dba
cmp dword [edi + 0x28], 1
jle 0x435dc5
push edi
call fcn.00429b91
pop ebx
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
je 0x435dad
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x436f73
mov eax, dword [ecx]
test eax, eax
jne 0x435de1
mov eax, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x18]
sub eax, dword [ecx + 0xc]
jmp 0x435e39
mov edx, dword [eax + 0x14]
test edx, edx
je 0x435e28
cmp dword [edx + 4], 0
je 0x435e28
mov edx, dword [ecx + 0xc]
mov eax, dword [eax + 0x10]
mov ebx, edx
mov esi, dword [ecx + 0x10]
sub ebx, dword [eax]
push 0x63f089
push 0
sub esi, edx
push dword [ecx]
call fcn.00448648
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx]
add esp, 0xc
mov edx, dword [eax + 0x10]
add ebx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 0xc], ebx
add ebx, esi
mov dword [ecx + 0x10], ebx
add eax, dword [edx]
mov dword [ecx + 0x14], eax
mov edx, dword [edi + 0x24]
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
mov eax, dword [edx + 0x10]
sub eax, dword [edx + 0xc]
mov ebx, dword [ecx + 4]
sub ebx, eax
test ebx, ebx
jle 0x436f73
mov eax, dword [edi + 0xac]
inc eax
cmp eax, 0x11
ja case.default.0x435e53
jmp dword [eax*4 + 0x6403d4]
cmp dword [edi + 0x100], 0
jne 0x435eba
cmp ebx, 3
jle 0x436f73
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x10]
mov al, byte [eax]
mov byte [ebp - 0xb8], al
mov eax, dword [edx + 0x10]
mov al, byte [eax + 1]
mov byte [ebp - 0xb7], al
mov eax, dword [edx + 0x10]
mov al, byte [eax + 2]
mov byte [ebp - 0xb6], al
mov eax, dword [edx + 0x10]
mov al, byte [eax + 3]
push 4
mov byte [ebp - 0xb5], al
lea eax, [ebp - 0xb8]
push eax
call fcn.00475e0b
pop edx
pop ecx
push eax
push edi
call fcn.0044b4fd
jmp 0x436004
cmp ebx, 1
jle 0x436f73
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
mov dl, byte [eax]
mov byte [ebp - 0xcd], dl
test dl, dl
mov cl, byte [eax + 1]
jne 0x435efe
mov eax, dword [edi]
test eax, eax
je 0x43605b
cmp dword [eax + 0x2c], 0
je 0x43605b
push 0x4fa830
push dword [edi + 4]
call dword [eax + 0x2c]
pop ebx
pop esi
jmp 0x43605b
cmp byte [ebp - 0xcd], 0x3c
sete dl
xor eax, eax
cmp cl, 0x3f
sete al
test eax, edx
je 0x435fd1
cmp ebx, 4
jle 0x436f73
cmp dword [ebp + 0x14], 0
jne 0x435f41
mov edx, 0x3f
mov eax, edi
push 0
push 0x3e
call fcn.00434260
pop edx
test eax, eax
pop ecx
js 0x436f73
mov eax, dword [edi]
test eax, eax
je 0x435f5a
cmp dword [eax + 0x2c], 0
je 0x435f5a
push 0x4fa830
push dword [edi + 4]
call dword [eax + 0x2c]
pop ebx
pop esi
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax + 2], 0x78
jne 0x435fc1
cmp byte [eax + 3], 0x6d
jne 0x435fc1
cmp byte [eax + 4], 0x6c
jne 0x435fc1
mov cl, byte [eax + 5]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x435f8e
cmp cl, 0xd
jne 0x435fc1
push edi
call fcn.00433f51
pop ecx
cmp dword [edi + 0x54], 0x20
je 0x436f0b
mov edx, dword [edi + 0x24]
cmp dword [edi + 0x18], 0
mov eax, dword [edx + 0x34]
mov dword [edi + 0x1c], eax
jne 0x43600b
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x43600b
push eax
call fcn.00449b54
pop edx
mov dword [edi + 0x18], eax
jmp 0x43600b
push 0x63f2fc
call fcn.00449bd5
pop esi
mov dword [edi + 0x14], eax
jmp 0x43600b
mov eax, dword [edi]
test eax, eax
je 0x435fea
cmp dword [eax + 0x2c], 0
je 0x435fea
push 0x4fa830
push dword [edi + 4]
call dword [eax + 0x2c]
pop ecx
pop ebx
push 0x63f2fc
call fcn.00449bd5
pop edx
test eax, eax
mov dword [edi + 0x14], eax
jne 0x43600b
push 0
push edi
call fcn.0044a646
pop esi
pop eax
jmp case.default.0x435e53
mov eax, dword [edi]
test eax, eax
je 0x43694a
cmp dword [eax + 0x30], 0
je 0x43694a
cmp dword [edi + 0xd4], 0
jne 0x43694a
push dword [edi + 4]
call dword [eax + 0x30]
jmp 0x436949
mov ecx, dword [edi + 0x148]
dec ebx
mov dword [ebp - 0xd4], ecx
jg 0x436050
cmp dword [edi + 0x28], 1
je 0x436f73
mov eax, dword [edi + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0x3c
je 0x436067
push 0
mov edx, 4
jmp 0x436c74
cmp dword [ebp + 0x14], 0
jne 0x4360a8
cmp dword [edi + 0x124], 0
je 0x43608e
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x436f73
cmp edx, eax
jae 0x436f73
jmp 0x4360a8
mov edx, 0x3e
mov eax, edi
push 0
push 0
call fcn.00434260
pop ecx
test eax, eax
pop ebx
js 0x436f73
cmp dword [edi + 0xec], 0
jne 0x4360b6
or edx, 0xffffffff
jmp 0x4360c5
mov eax, dword [edi + 0xe8]
mov edx, dword [eax]
cmp edx, 0xfffffffe
jne 0x4360c5
mov dl, 0xff
mov eax, edi
call fcn.00429ac5
cmp dword [edi + 0x144], 0
je 0x4360f4
lea eax, [ebp - 0xbc]
lea edx, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xc0]
push eax
mov eax, edi
call fcn.0042f174
pop esi
pop edx
jmp 0x4360fb
push edi
call fcn.004303b8
pop ebx
mov esi, eax
test eax, eax
jne 0x43610d
mov eax, edi
call fcn.00429b41
jmp 0x436c7c
cmp dword [edi + 0x68], 0
je 0x43613b
cmp dword [edi + 0xc], 0
je 0x43613b
mov eax, dword [edi + 8]
test eax, eax
je 0x43613b
mov edx, dword [edi + 0x34]
test edx, edx
je 0x43613b
cmp edx, dword [eax + 0xc]
jne 0x43613b
push eax
lea eax, [edi + 0x6c]
push eax
call fcn.0043f381
pop edx
pop ecx
and dword [edi + 0x64], eax
mov edx, dword [edi + 0x24]
mov ecx, dword [edx + 0x10]
cmp byte [ecx], 0x2f
jne 0x43620a
cmp byte [ecx + 1], 0x3e
jne 0x43620a
add dword [edi + 0xc8], 2
add dword [edx + 0x20], 2
lea eax, [ecx + 2]
mov dword [edx + 0x10], eax
cmp byte [ecx + 2], 0x25
jne 0x436172
push edi
call fcn.0042b82f
pop ebx
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0
jne 0x436195
push 0xfa
push edx
call fcn.0044a955
pop edx
test eax, eax
pop ecx
jg 0x436195
push edi
call fcn.00429b91
pop eax
cmp dword [edi + 0x144], 0
mov eax, dword [edi]
je 0x4361e2
test eax, eax
je 0x4361c9
cmp dword [eax + 0x78], 0
je 0x4361c9
cmp dword [edi + 0xd4], 0
jne 0x4361c9
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push esi
push dword [edi + 4]
call dword [eax + 0x78]
add esp, 0x10
mov edx, dword [edi + 0x148]
sub edx, dword [ebp - 0xd4]
test edx, edx
jle 0x4361fe
mov eax, edi
call fcn.0042973c
jmp 0x4361fe
test eax, eax
je 0x4361fe
cmp dword [eax + 0x3c], 0
je 0x4361fe
cmp dword [edi + 0xd4], 0
jne 0x4361fe
push esi
push dword [edi + 4]
call dword [eax + 0x3c]
pop ebx
pop esi
mov eax, edi
call fcn.00429b41
jmp 0x4366c4
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x3e
jne 0x43621b
push edi
call fcn.0044aa83
pop ecx
jmp 0x43623d
mov edx, 0x49
mov eax, edi
push esi
push 0x6401ea
call fcn.0042934c
pop eax
pop edx
push edi
call fcn.00429997
mov eax, edi
pop ebx
call fcn.00429b41
cmp dword [edi + 0x144], 0
je 0x436341
mov ebx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xd8], ebx
mov edx, dword [edi + 0xc0]
mov ebx, dword [edi + 0x148]
mov dword [ebp - 0xdc], eax
sub ebx, dword [ebp - 0xd4]
cmp dword [edi + 0xbc], edx
jl 0x4362f3
lea eax, [edx + edx]
mov dword [edi + 0xc0], eax
lea eax, [edx*8]
push eax
push dword [edi + 0xc4]
call dword [0x4fa8d4]
pop edx
test eax, eax
pop ecx
mov ecx, dword [edi + 0xc0]
jne 0x4362b9
mov edx, 2
mov eax, ecx
mov ebx, edx
cdq
idiv ebx
mov dword [edi + 0xc0], eax
jmp 0x436334
mov dword [edi + 0xc4], eax
imul eax, ecx, 0xc
push eax
push dword [edi + 0x158]
call dword [0x4fa8d4]
pop edx
test eax, eax
pop ecx
jne 0x4362ed
mov eax, dword [edi + 0xc0]
mov edx, 2
mov esi, edx
cdq
idiv esi
mov dword [edi + 0xc0], eax
jmp 0x436334
mov dword [edi + 0x158], eax
mov edx, dword [edi + 0xbc]
mov eax, dword [edi + 0xc4]
mov ecx, dword [edi + 0x158]
mov dword [eax + edx*4], esi
mov dword [edi + 0xb8], esi
imul eax, edx, 0xc
mov esi, dword [ebp - 0xd8]
inc edx
mov dword [eax + ecx], esi
add eax, ecx
mov ecx, dword [ebp - 0xdc]
mov dword [edi + 0xbc], edx
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
jmp 0x436ecc
push 0
push edi
call fcn.0044a646
jmp 0x436eca
push esi
push edi
call fcn.004299d9
jmp 0x436eca
cmp ebx, 1
jg 0x43635c
cmp dword [edi + 0x28], 1
je 0x436f73
mov esi, dword [edi + 0x24]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xe4], eax
mov dl, byte [eax]
mov byte [ebp - 0xcd], dl
cmp dl, 0x3c
mov cl, byte [eax + 1]
mov eax, dword [esi + 0x24]
mov dword [ebp - 0xe0], eax
sete al
movzx edx, al
cmp cl, 0x2f
sete al
test edx, eax
je 0x43639e
mov dword [edi + 0xac], 9
jmp case.default.0x435e53
cmp cl, 0x3f
sete al
test edx, eax
je 0x4363d3
cmp dword [ebp + 0x14], 0
jne 0x4363c8
mov edx, 0x3f
mov eax, edi
push 0
push 0x3e
call fcn.00434260
pop ebx
test eax, eax
pop esi
js 0x436f73
push edi
call fcn.00432234
jmp 0x4365ac
cmp cl, 0x21
setne al
test edx, eax
jne 0x436efc
cmp cl, 0x21
sete al
test edx, eax
je 0x43644f
mov edx, dword [ebp - 0xe4]
cmp byte [edx + 2], 0x2d
jne 0x43644f
cmp byte [edx + 3], 0x2d
jne 0x43644f
cmp ebx, 3
jle 0x436f73
mov eax, edx
mov edx, 0x2d
add eax, 4
mov dword [esi + 0x10], eax
mov eax, edi
push 0x3e
push 0x2d
call fcn.00434260
pop edx
mov edx, dword [edi + 0x24]
pop ecx
sub dword [edx + 0x10], 4
cmp dword [ebp + 0x14], 0
sete dl
shr eax, 0x1f
test eax, edx
jne 0x436f73
push edi
call fcn.0042c26c
pop eax
mov dword [edi + 0xac], 7
jmp 0x4365ad
cmp byte [ebp - 0xcd], 0x3c
jne 0x4364df
mov edx, dword [esi + 0x10]
cmp byte [edx + 1], 0x21
jne 0x4364df
cmp byte [edx + 2], 0x5b
jne 0x4364df
cmp byte [edx + 3], 0x43
jne 0x4364df
cmp byte [edx + 4], 0x44
jne 0x4364df
cmp byte [edx + 5], 0x41
jne 0x4364df
cmp byte [edx + 6], 0x54
jne 0x4364df
cmp byte [edx + 7], 0x41
jne 0x4364df
cmp byte [edx + 8], 0x5b
jne 0x4364df
add dword [edi + 0xc8], 9
add dword [esi + 0x20], 9
lea eax, [edx + 9]
mov dword [esi + 0x10], eax
cmp byte [edx + 9], 0x25
jne 0x4364ad
push edi
call fcn.0042b82f
pop eax
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0
jne 0x4364d0
push 0xfa
push edx
call fcn.0044a955
pop ebx
test eax, eax
pop esi
jg 0x4364d0
push edi
call fcn.00429b91
pop ecx
mov dword [edi + 0xac], 8
jmp case.default.0x435e53
cmp byte [ebp - 0xcd], 0x3c
sete dl
xor eax, eax
cmp cl, 0x21
sete al
test eax, edx
je 0x4364fe
cmp ebx, 8
jle 0x436f73
cmp byte [ebp - 0xcd], 0x26
jne 0x43652f
cmp dword [ebp + 0x14], 0
jne 0x436527
mov edx, 0x3b
mov eax, edi
push 0
push 0
call fcn.00434260
pop esi
test eax, eax
pop edx
js 0x436f73
push edi
call fcn.00435590
jmp 0x4365ac
cmp dword [edi + 0x28], 1
sete dl
xor eax, eax
cmp ebx, 0x12b
setle al
test eax, edx
je 0x43658a
cmp dword [ebp + 0x14], 0
jne 0x43658a
cmp dword [edi + 0x124], 0
je 0x436570
mov edx, dword [ebp - 0xb4]
test edx, edx
je 0x436f73
mov eax, dword [edi + 0x24]
cmp dword [eax + 0x10], edx
ja 0x436f73
jmp 0x43658a
mov edx, 0x3c
mov eax, edi
push 0
push 0
call fcn.00434260
pop ecx
test eax, eax
pop ebx
js 0x436f73
mov dword [edi + 0xcc], 0
push 0
push edi
call fcn.0042cd39
pop eax
pop edx
jmp 0x4365ad
cmp dword [edi + 0x28], 1
jle 0x4365b8
push edi
call fcn.00429b91
pop eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
je 0x4365a0
mov eax, dword [edi + 0x24]
mov ecx, dword [ebp - 0xe0]
cmp ecx, dword [eax + 0x24]
jne case.default.0x435e53
mov ebx, dword [ebp - 0xe4]
cmp ebx, dword [eax + 0x10]
jne case.default.0x435e53
mov edx, 1
mov eax, edi
push 0x64020d
call fcn.00428ea9
pop esi
mov dword [edi + 0xac], 0xffffffff
jmp case.default.0x435e53
dec ebx
jle 0x436f73
cmp dword [ebp + 0x14], 0
jne 0x436646
cmp dword [edi + 0x124], 0
je 0x43662c
mov edx, dword [ebp - 0xb0]
test edx, edx
je 0x436f73
mov eax, dword [edi + 0x24]
cmp dword [eax + 0x10], edx
jae 0x436f73
jmp 0x436646
mov edx, 0x3e
mov eax, edi
push 0
push 0
call fcn.00434260
pop ecx
test eax, eax
pop ebx
js 0x436f73
cmp dword [edi + 0x144], 0
je 0x4366bb
imul eax, dword [edi + 0xbc], 0xc
add eax, dword [edi + 0x158]
push 0
push dword [eax - 4]
push 0
push dword [eax - 8]
mov edx, dword [eax - 0xc]
mov eax, edi
call fcn.0042fcef
mov eax, dword [edi + 0xbc]
add esp, 0x10
test eax, eax
jle 0x4366c4
lea edx, [eax - 1]
mov dword [edi + 0xbc], edx
test edx, edx
jle 0x43669c
mov eax, dword [edi + 0xc4]
mov eax, dword [eax + edx*4 - 4]
mov dword [edi + 0xb8], eax
jmp 0x4366a6
mov dword [edi + 0xb8], 0
mov edx, dword [edi + 0xbc]
mov eax, dword [edi + 0xc4]
mov dword [eax + edx*4], 0
jmp 0x4366c4
xor edx, edx
mov eax, edi
call fcn.0042ff91
mov eax, dword [edi + 0xbc]
cmp eax, 1
sbb eax, eax
and eax, 7
add eax, 7
mov dword [edi + 0xac], eax
jmp case.default.0x435e53
mov edx, 0x5d
mov eax, edi
push 0x3e
push 0x5d
call fcn.00434260
pop esi
test eax, eax
pop edx
mov esi, eax
jns 0x4367cc
cmp ebx, 0x12d
jle 0x436f73
mov eax, dword [edi + 0x24]
mov edx, 0x12c
mov eax, dword [eax + 0x10]
call fcn.00434421
mov ebx, eax
test eax, eax
js 0x436f1f
mov edx, dword [edi]
test edx, edx
je 0x43675c
cmp dword [edi + 0xd4], 0
jne 0x43675c
cmp dword [edx + 0x64], 0
je 0x436746
push eax
mov eax, dword [edi + 0x24]
push dword [eax + 0x10]
push dword [edi + 4]
call dword [edx + 0x64]
jmp 0x436759
cmp dword [edx + 0x44], 0
je 0x43675c
push eax
mov eax, dword [edi + 0x24]
push dword [eax + 0x10]
push dword [edi + 4]
call dword [edx + 0x44]
add esp, 0xc
xor ecx, ecx
cmp ecx, ebx
jge 0x436788
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0xa
jne 0x436779
inc dword [edx + 0x1c]
mov dword [edx + 0x20], 1
jmp 0x43677c
inc dword [edx + 0x20]
inc dword [edi + 0xc8]
inc ecx
inc dword [edx + 0x10]
jmp 0x43675e
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x43679a
push edi
call fcn.0042b82f
pop ecx
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0
jne 0x4367bd
push 0xfa
push edx
call fcn.0044a955
pop esi
test eax, eax
pop edx
jg 0x4367bd
push edi
call fcn.00429b91
pop ebx
mov dword [edi + 0xcc], 0
jmp 0x436f73
mov eax, dword [edi + 0x24]
mov edx, esi
mov eax, dword [eax + 0x10]
call fcn.00434421
mov ecx, eax
mov edx, eax
shr edx, 0x1f
xor eax, eax
cmp ecx, esi
setne al
or edx, eax
jne 0x436f17
mov ecx, dword [edi]
test ecx, ecx
setne dl
xor eax, eax
test esi, esi
setg al
test eax, edx
je 0x436835
cmp dword [edi + 0xd4], 0
jne 0x436835
cmp dword [ecx + 0x64], 0
je 0x43681f
push esi
mov eax, dword [edi + 0x24]
push dword [eax + 0x10]
push dword [edi + 4]
call dword [ecx + 0x64]
jmp 0x436832
cmp dword [ecx + 0x44], 0
je 0x436835
push esi
mov eax, dword [edi + 0x24]
push dword [eax + 0x10]
push dword [edi + 4]
call dword [ecx + 0x44]
add esp, 0xc
xor ecx, ecx
lea eax, [esi + 3]
cmp ecx, eax
jge 0x436864
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0xa
jne 0x436855
inc dword [edx + 0x1c]
mov dword [edx + 0x20], 1
jmp 0x436858
inc dword [edx + 0x20]
inc dword [edi + 0xc8]
inc ecx
inc dword [edx + 0x10]
jmp 0x436837
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x436876
push edi
call fcn.0042b82f
pop ecx
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0
jne 0x436899
push 0xfa
push edx
call fcn.0044a955
pop esi
test eax, eax
pop edx
jg 0x436899
push edi
call fcn.00429b91
pop ebx
mov dword [edi + 0xcc], 0
jmp 0x436ecc
push edi
call fcn.0042f05b
mov esi, dword [edi + 0x24]
pop ecx
mov dword [ebp - 0xe8], esi
mov eax, dword [esi]
mov edx, dword [esi + 0x10]
test eax, eax
mov ecx, dword [esi + 0xc]
jne 0x4368cb
sub edx, ecx
mov ebx, dword [esi + 0x18]
jmp 0x4368d3
mov eax, dword [eax + 0x10]
sub edx, ecx
mov ebx, dword [eax + 4]
sub ebx, edx
cmp ebx, 1
jle 0x436f73
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax + 0x10]
mov cl, byte [edx]
mov byte [ebp - 0xcd], cl
cmp byte [ebp - 0xcd], 0x3c
mov cl, byte [edx + 1]
sete al
movzx esi, al
cmp cl, 0x3f
sete al
test esi, eax
jne 0x436ac9
cmp cl, 0x21
sete al
test esi, eax
je 0x436959
cmp byte [edx + 2], 0x2d
jne 0x436959
cmp byte [edx + 3], 0x2d
jne 0x436959
cmp dword [ebp + 0x14], 0
jne 0x436943
mov edx, 0x2d
mov eax, edi
push 0x3e
push 0x2d
call fcn.00434260
pop esi
test eax, eax
pop edx
js 0x436f73
push edi
call fcn.0042c26c
pop ebx
mov dword [edi + 0xac], 1
jmp case.default.0x435e53
cmp byte [ebp - 0xcd], 0x3c
sete dl
xor eax, eax
cmp cl, 0x21
sete al
test eax, edx
je 0x436a4b
mov esi, dword [ebp - 0xe8]
mov eax, dword [esi + 0x10]
cmp byte [eax + 2], 0x44
jne 0x436a4b
cmp byte [eax + 3], 0x4f
jne 0x436a4b
cmp byte [eax + 4], 0x43
jne 0x436a4b
cmp byte [eax + 5], 0x54
jne 0x436a4b
cmp byte [eax + 6], 0x59
jne 0x436a4b
cmp byte [eax + 7], 0x50
jne 0x436a4b
cmp byte [eax + 8], 0x45
jne 0x436a4b
cmp dword [ebp + 0x14], 0
jne 0x4369e2
mov edx, 0x3e
mov eax, edi
push 0
push 0
call fcn.00434260
pop edx
test eax, eax
pop ecx
js 0x436f73
mov dword [edi + 0xd8], 1
push edi
call fcn.00432aa4
pop eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x5b
je 0x436eaa
mov eax, dword [edi]
mov dword [edi + 0xd8], 2
test eax, eax
je 0x436a3c
cmp dword [edi + 0xd4], 0
jne 0x436a3c
cmp dword [eax + 0x68], 0
je 0x436a3c
push dword [edi + 0xe0]
push dword [edi + 0xe4]
push dword [edi + 0xdc]
push dword [edi + 4]
call dword [eax + 0x68]
add esp, 0x10
mov dword [edi + 0xd8], 0
jmp 0x436b31
cmp byte [ebp - 0xcd], 0x3c
sete dl
xor eax, eax
cmp cl, 0x21
sete al
test eax, edx
je 0x436a6a
cmp ebx, 8
jle 0x436f73
mov dword [edi + 0xac], 6
jmp 0x436b76
push edi
call fcn.0042f05b
mov ecx, dword [edi + 0x24]
pop eax
mov eax, dword [ecx]
mov edx, dword [ecx + 0x10]
test eax, eax
mov ebx, dword [ecx + 0xc]
jne 0x436a96
sub edx, ebx
mov ebx, dword [ecx + 0x18]
jmp 0x436a9e
mov eax, dword [eax + 0x10]
sub edx, ebx
mov ebx, dword [eax + 4]
sub ebx, edx
cmp ebx, 1
jle 0x436f73
mov edx, dword [ecx + 0x10]
mov al, byte [edx]
mov byte [ebp - 0xcd], al
cmp al, 0x3c
mov cl, byte [edx + 1]
sete al
movzx esi, al
cmp cl, 0x3f
sete al
test esi, eax
je 0x436af4
cmp dword [ebp + 0x14], 0
jne 0x436ae9
mov edx, 0x3f
mov eax, edi
push 0
push 0x3e
call fcn.00434260
pop ebx
test eax, eax
pop esi
js 0x436f73
push edi
call fcn.00432234
jmp 0x435d97
cmp cl, 0x21
sete al
test esi, eax
je 0x436b40
cmp byte [edx + 2], 0x2d
jne 0x436b40
cmp byte [edx + 3], 0x2d
jne 0x436b40
cmp dword [ebp + 0x14], 0
jne 0x436b2a
mov edx, 0x2d
mov eax, edi
push 0x3e
push 0x2d
call fcn.00434260
pop edx
test eax, eax
pop ecx
js 0x436f73
push edi
call fcn.0042c26c
pop eax
mov dword [edi + 0xac], 4
jmp case.default.0x435e53
cmp byte [ebp - 0xcd], 0x3c
sete dl
xor eax, eax
cmp cl, 0x21
sete al
test eax, edx
je 0x436b5f
cmp ebx, 3
jle 0x436f73
mov dword [edi + 0xac], 6
cmp dword [edi + 0x124], 0
jne 0x435d83
mov dword [edi + 0x124], 1
jmp 0x435d83
push edi
call fcn.0042f05b
mov ecx, dword [edi + 0x24]
pop eax
mov eax, dword [ecx]
mov edx, dword [ecx + 0x10]
test eax, eax
mov ebx, dword [ecx + 0xc]
jne 0x436ba2
sub edx, ebx
mov ebx, dword [ecx + 0x18]
jmp 0x436baa
mov eax, dword [eax + 0x10]
sub edx, ebx
mov ebx, dword [eax + 4]
sub ebx, edx
cmp ebx, 1
jle 0x436f73
mov edx, dword [ecx + 0x10]
mov cl, byte [edx]
mov byte [ebp - 0xcd], cl
cmp byte [ebp - 0xcd], 0x3c
mov cl, byte [edx + 1]
sete al
movzx esi, al
cmp cl, 0x3f
sete al
test esi, eax
je 0x436c02
cmp dword [ebp + 0x14], 0
jne 0x436bfa
mov edx, 0x3f
mov eax, edi
push 0
push 0x3e
call fcn.00434260
pop ebx
test eax, eax
pop esi
js 0x436f73
push edi
call fcn.00432234
jmp 0x436c3e
cmp cl, 0x21
sete al
test esi, eax
je 0x436c4e
cmp byte [edx + 2], 0x2d
jne 0x436c4e
cmp byte [edx + 3], 0x2d
jne 0x436c4e
cmp dword [ebp + 0x14], 0
jne 0x436c38
mov edx, 0x2d
mov eax, edi
push 0x3e
push 0x2d
call fcn.00434260
pop edx
test eax, eax
pop ecx
js 0x436f73
push edi
call fcn.0042c26c
pop eax
mov dword [edi + 0xac], 0xe
jmp case.default.0x435e53
cmp byte [ebp - 0xcd], 0x3c
sete dl
xor eax, eax
cmp cl, 0x21
sete al
test eax, edx
je 0x436c6d
cmp ebx, 3
jle 0x436f73
push 0
mov edx, 5
mov eax, edi
call fcn.00428ea9
pop eax
mov eax, dword [edi]
mov dword [edi + 0xac], 0xffffffff
test eax, eax
je 0x436f73
cmp dword [eax + 0x34], 0
je 0x436f73
push dword [edi + 4]
call dword [eax + 0x34]
pop eax
jmp 0x436f73
mov edx, dword [edi + 0x24]
mov byte [ebp - 0xed], 0
mov eax, dword [edx + 0x10]
mov ecx, eax
sub ecx, dword [edx + 0xc]
js 0x436f73
mov eax, dword [edi + 0xcc]
cmp eax, ecx
jle 0x436cca
mov ecx, eax
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
mov esi, dword [eax]
cmp ecx, dword [eax + 4]
jae 0x436f73
cmp byte [ebp - 0xed], 0
mov al, byte [ecx + esi]
je 0x436d06
cmp al, byte [ebp - 0xed]
jne 0x436e10
mov byte [ebp - 0xed], 0
jmp 0x436e10
add ecx, 2
jmp 0x436e10
cmp al, 0x3c
jne 0x436d6e
mov ebx, dword [edi + 0x24]
lea eax, [ecx + 4]
mov edx, dword [ebx]
mov edx, dword [edx + 0x10]
mov edx, dword [edx + 4]
cmp eax, edx
jae 0x436e10
cmp byte [esi + ecx + 1], 0x21
jne 0x436e10
cmp byte [esi + ecx + 2], 0x2d
jne 0x436e10
cmp byte [esi + ecx + 3], 0x2d
jne 0x436e10
lea eax, [ecx + 3]
cmp eax, edx
jae 0x436f73
cmp byte [ecx + esi], 0x2d
jne 0x436d60
cmp byte [esi + ecx + 1], 0x2d
jne 0x436d60
cmp byte [esi + ecx + 2], 0x3e
je 0x436cfe
mov edx, dword [ebx]
inc ecx
mov edx, dword [edx + 0x10]
lea eax, [ecx + 3]
cmp eax, dword [edx + 4]
jmp 0x436d46
cmp al, 0x22
jne 0x436d7e
mov byte [ebp - 0xed], 0x22
jmp 0x436e10
cmp al, 0x27
jne 0x436d8e
mov byte [ebp - 0xed], 0x27
jmp 0x436e10
cmp al, 0x5d
jne 0x436e10
mov ebx, dword [edi + 0x24]
lea edx, [ecx + 1]
mov dword [ebp - 0xf4], ebx
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
cmp edx, dword [eax + 4]
jae 0x436f73
mov dword [ebp - 0xec], 1
cmp byte [esi + ecx + 1], 0x5d
jne 0x436dc1
mov ecx, edx
jmp 0x436e10
lea eax, [esi + ecx]
mov edx, dword [ebp - 0xec]
mov bl, byte [eax + edx]
cmp bl, 0x3e
je 0x436e1e
lea eax, [ebx - 9]
cmp bl, 0x20
setne dl
cmp al, 1
seta al
movzx eax, al
test eax, edx
je 0x436dec
cmp bl, 0xd
jne 0x436e10
inc dword [ebp - 0xec]
mov ebx, dword [ebp - 0xec]
lea eax, [ecx + ebx]
mov ebx, dword [ebp - 0xf4]
mov edx, dword [ebx]
mov edx, dword [edx + 0x10]
cmp eax, dword [edx + 4]
jb 0x436dc1
jmp 0x436f73
mov eax, dword [edi + 0x24]
inc ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
jmp 0x436cd1
mov eax, edi
call fcn.0043350a
mov eax, dword [edi]
mov dword [edi + 0xd8], 2
test eax, eax
je 0x436e5f
cmp dword [edi + 0xd4], 0
jne 0x436e5f
cmp dword [eax + 0x68], 0
je 0x436e5f
push dword [edi + 0xe0]
push dword [edi + 0xe4]
push dword [edi + 0xdc]
push dword [edi + 4]
call dword [eax + 0x68]
add esp, 0x10
mov dword [edi + 0xd8], 0
mov dword [edi + 0xac], 4
mov dword [edi + 0xcc], 0
jmp case.default.0x435e53
push str.PP:_internal_error__state__COMMENT_n
jmp 0x436ebe
push str.PP:_internal_error__state__IGNORE
jmp 0x436e9c
push str.PP:_internal_error__state__PI_n
jmp 0x436ebe
push str.PP:_internal_error__state__ENTITY_DECL_n
push dword [0x667cd4]
call dword [0x4fa8b8]
pop esi
pop eax
mov dword [edi + 0xac], 3
jmp case.default.0x435e53
push str.PP:_internal_error__state__ENTITY_VALUE_n
push dword [0x667cd4]
call dword [0x4fa8b8]
pop ecx
pop ebx
mov dword [edi + 0xac], 7
jmp case.default.0x435e53
push str.PP:_internal_error__state__ATTRIBUTE_VALUE_n
jmp 0x436eee
push str.PP:_internal_error__state__SYSTEM_LITERAL_n
jmp 0x436eee
push str.PP:_internal_error__state__PUBLIC_LITERAL_n
push dword [0x667cd4]
call dword [0x4fa8b8]
pop eax
pop edx
mov dword [edi + 0xac], 6
jmp case.default.0x435e53
mov dword [edi + 0xac], 0xffffffff
jmp 0x436f73
mov eax, dword [edi + 0x24]
sub dword [eax + 0x10], ecx
jmp 0x436f25
mov eax, dword [edi + 0x24]
sub dword [eax + 0x10], ebx
mov edx, dword [edi + 0x24]
lea ebx, [ebp - 0xac]
mov eax, dword [edx + 0x10]
movzx eax, byte [eax + 3]
push eax
mov eax, dword [edx + 0x10]
movzx eax, byte [eax + 2]
push eax
mov eax, dword [edx + 0x10]
movzx eax, byte [eax + 1]
push eax
mov eax, dword [edx + 0x10]
movzx eax, byte [eax]
push eax
push 0x64037b
push 0x95
push ebx
call sub.msvcrt.dll__snprintf
add esp, 0x1c
push 0
push ebx
push 0x64039f
push 9
push edi
call fcn.0044a6dc
add esp, 0x14
cmp dword [ebp - 0xc8], 1
jne 0x436f99
mov eax, dword [edi + 0x24]
test eax, eax
je 0x436f99
cmp dword [eax], 0
je 0x436f99
push 0x6403d1
push 1
push dword [eax]
call fcn.00448648
add esp, 0xc
mov eax, dword [edi + 0x54]
test eax, eax
je 0x436fad
cmp dword [edi + 0xd4], 1
je 0x437052
cmp dword [ebp + 0x14], 0
je 0x43704f
mov eax, dword [edi + 0x24]
xor ebx, ebx
test eax, eax
je 0x436fdd
mov ebx, dword [eax]
mov edx, dword [eax + 0x10]
test ebx, ebx
mov ecx, dword [eax + 0xc]
jne 0x436fd3
sub edx, ecx
mov ebx, dword [eax + 0x18]
jmp 0x436fdb
mov eax, dword [ebx + 0x10]
sub edx, ecx
mov ebx, dword [eax + 4]
sub ebx, edx
mov eax, dword [edi + 0xac]
cmp eax, 0xffffffff
setne dl
cmp eax, 0xe
setne al
movzx eax, al
test eax, edx
je 0x437005
mov eax, edi
mov edx, 5
push 0
call fcn.00428ea9
pop eax
cmp dword [edi + 0xac], 0xe
sete dl
xor eax, eax
test ebx, ebx
setg al
test eax, edx
je 0x437029
mov eax, edi
mov edx, 5
push 0
call fcn.00428ea9
pop eax
cmp dword [edi + 0xac], 0xffffffff
je 0x437045
mov eax, dword [edi]
test eax, eax
je 0x437045
cmp dword [eax + 0x34], 0
je 0x437045
push dword [edi + 4]
call dword [eax + 0x34]
pop eax
mov dword [edi + 0xac], 0xffffffff
mov eax, dword [edi + 0x54]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret