Function at 0x428570
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4b7f6b
push eax
mov dword fs:[0], esp
mov eax, dword [0x5fb9d0]
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x24]
push ebp
push esi
push edi
test eax, eax
jne 0x428ead
mov esi, dword [0x5fb9d4]
lea eax, [esi - 1]
mov edi, 1
cmp eax, edi
ja 0x4285c4
mov eax, dword [0x913198]
cmp eax, edi
jne 0x428644
cmp esi, edi
je 0x428655
mov ebp, dword [0x5fb9e8]
mov ebx, dword [0x4fdae8]
lea eax, [esi - 3]
cmp eax, 4
ja 0x4286a3
mov ecx, 2
test ebx, ebx
jne 0x4285eb
mov ecx, dword [0x91236c]
mov edx, dword [esp + 0x30]
cmp ecx, eax
je 0x4286a7
mov dword [0x91236c], eax
mov dword [0x5fb9e4], edi
cmp edx, edi
jne 0x428636
add esi, edi
cmp esi, 7
mov dword [0x5fb9d4], esi
jle 0x42861e
mov esi, 3
mov dword [0x5fb9d4], esi
add ebp, edi
cmp ebp, 6
mov dword [0x5fb9e8], ebp
jle 0x428636
mov ebp, 2
mov dword [0x5fb9e8], ebp
xor eax, eax
mov dword [0x5fc6a0], eax
mov dword [0x5fc6a4], eax
jmp 0x4286a7
test eax, eax
jne 0x4285c4
cmp esi, 2
jne 0x4285c4
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0045d6c0
mov esi, dword [0x5fb9d4]
add esp, 4
mov dword [0x4fdaac], edi
mov dword [0x5fb9e4], edi
cmp ebx, edi
jne 0x4285c4
xor edx, edx
cmp dword [0x5fb9e8], edi
setne dl
sub esi, edi
neg esi
sbb esi, esi
add esi, 2
mov dword [0x5fb9d4], esi
mov ebp, edx
mov dword [0x5fb9e8], ebp
jmp 0x4285ca
mov edx, dword [esp + 0x30]
lea eax, [esi - 8]
cmp eax, edi
ja 0x428764
mov ecx, dword [0x912430]
xor eax, eax
cmp esi, 9
setne al
cmp ecx, eax
je 0x4286fc
mov ecx, eax
mov dword [0x912430], ecx
mov dword [0x5fb9e4], edi
cmp edx, edi
jne 0x4286fc
xor eax, eax
cmp ebp, 7
sete al
add eax, 7
mov ebp, eax
xor eax, eax
cmp esi, 8
sete al
mov dword [0x5fb9e8], ebp
add eax, 8
mov esi, eax
mov dword [0x5fb9d4], esi
cmp dword [0x4f9e6c], 0
je 0x428764
test ecx, ecx
je 0x428832
mov edi, dword [0x4f9ecc]
movzx ecx, di
push 0
push ecx
call fcn.0042b770
add esp, 8
neg eax
sbb eax, eax
movzx edx, di
and eax, 0xfffffff2
add eax, 0xf
push 0
push edx
mov dword [0x4f9ec4], eax
call fcn.0042b770
add esp, 8
neg eax
sbb eax, eax
and eax, 0xfffffff2
add eax, 0xf
mov edi, 1
push 0x400
push eax
push 0x4fa26c
call fcn.00487bc0
mov edx, dword [esp + 0x3c]
add esp, 0xc
lea ecx, [esi - 0xa]
cmp ecx, edi
ja 0x4287b7
mov eax, ebx
neg eax
sbb eax, eax
not eax
and eax, dword [0x912404]
cmp eax, ecx
je 0x4287b7
mov dword [0x912404], ecx
mov dword [0x5fb9e4], edi
cmp edx, edi
jne 0x4287b7
add esi, edi
cmp esi, 0xb
mov dword [0x5fb9d4], esi
jle 0x4287a5
mov esi, 0xa
mov dword [0x5fb9d4], esi
add ebp, edi
xor eax, eax
cmp ebp, edi
setg al
dec eax
and ebp, eax
mov dword [0x5fb9e8], ebp
lea ecx, [esi - 0xc]
cmp ecx, edi
ja 0x428811
xor eax, eax
cmp esi, 0xd
setne al
cmp dword [0x91237c], eax
je 0x428811
mov dword [0x91237c], eax
mov dword [0x5fb9e4], edi
test eax, eax
je 0x4287e7
mov dword [0x4f9e5c], 0
cmp edx, edi
jne 0x428811
xor eax, eax
cmp ebp, 3
setne al
xor ecx, ecx
add eax, 2
cmp esi, 0xc
sete cl
mov ebp, eax
mov dword [0x5fb9e8], ebp
add ecx, 0xc
mov esi, ecx
mov dword [0x5fb9d4], esi
cmp esi, 0xe
jne 0x428841
xor edx, edx
cmp dword [0x912384], edx
mov dword [0x5fb9e4], edi
sete dl
mov dword [0x912384], edx
jmp 0x429a75
mov eax, 0xf
mov dword [0x4f9ec4], eax
jmp 0x42874d
lea eax, [esi - 0xf]
cmp eax, 0xa
ja 0x428872
cmp edx, edi
jne 0x42885c
mov eax, dword [0x912370]
inc eax
cmp eax, 0xb
jle 0x428867
mov eax, edi
jmp 0x428867
lea eax, [esi - 0xe]
cmp eax, dword [0x912370]
je 0x428872
mov dword [0x5fb9e4], edi
mov dword [0x912370], eax
cmp esi, 0x1a
jne 0x428893
xor ecx, ecx
cmp dword [0x912388], ecx
mov dword [0x5fb9e4], edi
sete cl
mov dword [0x912388], ecx
jmp 0x429a75
lea eax, [esi - 0x1b]
cmp eax, edi
ja 0x4288db
xor eax, eax
cmp esi, 0x1c
setne al
cmp dword [0x912420], eax
je 0x4288db
mov dword [0x912420], eax
mov dword [0x5fb9e4], edi
cmp edx, edi
jne 0x4288db
xor ecx, ecx
cmp ebp, edi
setne cl
xor eax, eax
cmp esi, 0x1b
sete al
mov ebp, ecx
mov dword [0x5fb9e8], ebp
add eax, 0x1b
mov esi, eax
mov dword [0x5fb9d4], esi
lea ecx, [esi - 0x1d]
cmp ecx, edi
ja 0x428923
xor eax, eax
cmp esi, 0x1d
setne al
cmp dword [0x912424], eax
je 0x428923
mov dword [0x912424], eax
mov dword [0x5fb9e4], edi
cmp edx, edi
jne 0x428923
xor eax, eax
cmp ebp, edi
setne al
xor ecx, ecx
cmp esi, 0x1d
sete cl
mov ebp, eax
mov dword [0x5fb9e8], ebp
add ecx, 0x1d
mov esi, ecx
mov dword [0x5fb9d4], esi
lea eax, [esi - 0x1f]
cmp eax, edi
ja 0x42896b
cmp dword [0x912414], eax
je 0x42896b
mov dword [0x912414], eax
mov dword [0x5fb9e4], edi
cmp edx, edi
jne 0x42896b
add esi, edi
cmp esi, 0x20
mov dword [0x5fb9d4], esi
jle 0x428959
mov esi, 0x1f
mov dword [0x5fb9d4], esi
add ebp, edi
xor eax, eax
cmp ebp, edi
setg al
dec eax
and ebp, eax
mov dword [0x5fb9e8], ebp
lea eax, [esi - 0x21]
cmp eax, 2
ja 0x4289b5
cmp dword [0x912418], eax
je 0x4289b5
mov dword [0x912418], eax
mov dword [0x5fb9e4], edi
cmp edx, edi
jne 0x4289b5
add esi, edi
cmp esi, 0x23
mov dword [0x5fb9d4], esi
jle 0x4289a2
mov esi, 0x21
mov dword [0x5fb9d4], esi
add ebp, edi
xor ecx, ecx
cmp ebp, 2
setg cl
dec ecx
and ebp, ecx
mov dword [0x5fb9e8], ebp
lea edx, [esi - 0x24]
cmp edx, edi
ja 0x428b74
neg ebx
sbb ebx, ebx
not ebx
and ebx, dword [0x912408]
xor eax, eax
cmp esi, 0x25
setne al
mov ecx, ebx
cmp ecx, eax
je 0x428b74
mov edi, dword [0x7ec5cc]
xor ebx, ebx
mov dword [0x912408], eax
cmp edi, ebx
je 0x4289fa
call fcn.00428540
mov dword [0x7ec5cc], ebx
push 0x10
call fcn.00483793
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], ebx
cmp eax, ebx
je 0x428a31
mov ecx, dword [0x4fdae8]
neg ecx
sbb ecx, ecx
not ecx
and ecx, dword [0x912408]
mov esi, eax
push ecx
mov ecx, dword [esp + 0x38]
push ecx
call fcn.00461650
jmp 0x428a33
xor eax, eax
mov dword [esp + 0x28], 0xffffffff
mov dword [0x7ec5cc], eax
cmp dword [0x91239c], ebx
jne 0x428abd
cmp dword [0x4fdaf0], ebx
je 0x428abd
fild dword [0x91230c]
mov edx, dword [0x4fdaf4]
push ebx
push edx
fimul dword [0x4fdaf8]
push ebx
push ebx
fmul qword [0x4d6ae0]
call fcn.004880e0
push eax
push ebx
mov eax, 0x4fdafc
call fcn.004616d0
mov eax, dword [0x4fdaf4]
mov ecx, 0xa
sub ecx, dword [0x4fdaf8]
push ebx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
push eax
push ebx
fimul dword [0x91230c]
push ebx
fmul qword [0x4d6ae0]
call fcn.004880e0
push eax
mov ebp, 1
push ebp
mov eax, 0x4fdafc
call fcn.004616d0
jmp 0x428ac2
mov ebp, 1
cmp dword [0x9123a0], ebx
jne 0x428b30
mov edx, dword [0x912310]
mov dword [esp + 0x14], edx
xor edi, edi
mov esi, 0x6da3c4
jmp 0x428ae0
cmp dword [esi - 0xc], ebx
je 0x428b23
cmp dword [esi], ebx
jne 0x428aee
cmp dword [esi - 4], ebx
je 0x428b20
fild dword [esi + 8]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi - 4]
fimul dword [esp + 0x14]
push eax
push ecx
push ebx
push ebx
neg edx
sbb edx, edx
push ebx
fmul qword [0x4d6ae0]
push edx
call fcn.004880e0
push eax
push ebx
lea eax, [esi + 0x14]
push eax
mov eax, edi
call fcn.00461a70
mov dword [esi + 4], ebx
add esi, 0x34
add edi, ebp
cmp esi, 0x6da4c8
jl 0x428ae0
mov dword [0x5fb9e4], ebp
cmp dword [esp + 0x30], ebp
jne 0x428b68
xor ecx, ecx
cmp dword [0x5fb9e8], ebp
setne cl
xor edx, edx
cmp dword [0x5fb9d4], 0x24
sete dl
mov ebp, ecx
mov dword [0x5fb9e8], ebp
add edx, 0x24
mov esi, edx
mov dword [0x5fb9d4], esi
jmp 0x428b74
mov ebp, dword [0x5fb9e8]
mov esi, dword [0x5fb9d4]
mov ebx, dword [esp + 0x30]
lea eax, [esi - 0x26]
mov edi, 1
cmp eax, 0xa
ja 0x428bae
cmp ebx, edi
jne 0x428b98
mov eax, dword [0x912374]
inc eax
cmp eax, 0xb
jle 0x428ba3
mov eax, edi
jmp 0x428ba3
lea eax, [esi - 0x25]
cmp eax, dword [0x912374]
je 0x428bae
mov dword [0x5fb9e4], edi
mov dword [0x912374], eax
lea ecx, [esi - 0x31]
cmp ecx, 0xa
ja 0x428bdf
cmp ebx, edi
jne 0x428bc9
mov eax, dword [0x912378]
inc eax
cmp eax, 0xb
jle 0x428bd4
mov eax, edi
jmp 0x428bd4
lea eax, [esi - 0x30]
cmp eax, dword [0x912378]
je 0x428bdf
mov dword [0x5fb9e4], edi
mov dword [0x912378], eax
lea eax, [esi - 0x3c]
cmp eax, 3
ja 0x428c3f
cmp dword [0x912380], eax
je 0x428c3f
mov dword [0x912380], eax
mov dword [0x5fb9e4], edi
cmp ebx, edi
jne 0x428c3f
add esi, edi
cmp esi, 0x3f
mov dword [0x5fb9d4], esi
jle 0x428c16
mov esi, 0x3c
mov dword [0x5fb9d4], esi
add ebp, edi
cmp ebp, edi
jle 0x428c2f
cmp esi, 0x3d
jle 0x428c29
add dword [0x5fb9ec], edi
jmp 0x428c2f
sub dword [0x5fb9ec], edi
xor edx, edx
cmp ebp, edi
setg dl
dec edx
and edx, ebp
mov dword [0x5fb9e8], edx
lea eax, [esi - 0x40]
cmp eax, edi
ja 0x428d1e
xor ecx, ecx
cmp esi, 0x40
setne cl
cmp dword [0x91238c], ecx
je 0x428d1e
call fcn.00459c40
mov eax, dword [0x5fb9d4]
xor edx, edx
cmp eax, 0x40
setne dl
mov dword [0x91238c], edx
cmp eax, 0x40
jne 0x428c89
push edi
call fcn.0045dd00
add esp, 4
call fcn.00461480
xor ebp, ebp
cmp dword [0x91238c], ebp
je 0x428c9a
mov eax, 0x91244c
jmp 0x428ca3
push edi
call fcn.0045dd00
add esp, 4
push eax
call fcn.00459b90
cmp dword [0x91238c], ebp
je 0x428cb8
mov eax, 0x91244c
jmp 0x428cc1
push edi
call fcn.0045dd00
add esp, 4
push eax
call fcn.00459b90
mov dword [0x5fb9e4], edi
cmp ebx, edi
jne 0x428d0a
xor eax, eax
cmp dword [0x5fb9e8], 2
mov dword [0x5fc6a0], ebp
sete al
xor ecx, ecx
mov dword [0x5fc6a4], ebp
add eax, 2
cmp dword [0x5fb9d4], 0x40
mov dword [0x5fb9e8], eax
sete cl
add ecx, 0x40
mov esi, ecx
mov dword [0x5fb9d4], esi
jmp 0x428d20
mov esi, dword [0x5fb9d4]
mov dword [0x5fc6a0], ebp
mov dword [0x5fc6a4], ebp
jmp 0x428d20
xor ebp, ebp
cmp esi, 0x42
jne 0x428db9
mov dword [0x91238c], edi
call fcn.00459c40
mov edx, dword [0x9131dc]
mov eax, dword [edx]
cmp eax, ebp
jne 0x428d45
mov eax, dword [0x9131e0]
mov dword [0x9131dc], eax
add eax, 8
mov edx, 0x91244c
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, edi
test cl, cl
jne 0x428d54
cmp dword [0x91238c], ebp
je 0x428d6e
mov eax, 0x91244c
jmp 0x428d77
push edi
call fcn.0045dd00
add esp, 4
push eax
call fcn.00459b90
cmp dword [0x91238c], ebp
je 0x428d8c
mov eax, 0x91244c
jmp 0x428d95
push edi
call fcn.0045dd00
add esp, 4
push eax
call fcn.00459b90
mov dword [0x4fdaac], edi
mov dword [0x5fb9e4], edi
mov dword [0x5fc6a0], ebp
mov dword [0x5fc6a4], ebp
mov esi, dword [0x5fb9d4]
lea eax, [esi - 0x65]
mov edi, 1
cmp eax, edi
ja 0x428dd3
lea eax, [esi - 0x64]
call fcn.0043c5c0
mov esi, dword [0x5fb9d4]
cmp esi, 0x67
jne 0x428e0b
push 0
call fcn.00425620
xor ecx, ecx
add esp, 4
cmp word [0x6d889c], cx
push edi
setne cl
push 0
mov dword [0x5fb9e4], edi
mov dword [0x4fdaa4], ecx
call fcn.00422700
mov esi, dword [0x5fb9d4]
add esp, 8
cmp esi, 0x68
jne 0x428e42
push 0
call fcn.00425620
xor edx, edx
add esp, 4
cmp word [0x6d889c], dx
push edi
setne dl
push edi
mov dword [0x5fb9e4], edi
mov dword [0x4fdaa4], edx
call fcn.00422700
mov esi, dword [0x5fb9d4]
add esp, 8
cmp esi, 0x69
jne 0x428e62
push 0
call fcn.00425620
add esp, 4
mov dword [0x5fb9e4], edi
call fcn.00435060
mov esi, dword [0x5fb9d4]
mov ebp, dword [esp + 0x30]
cmp esi, 0x6a
jne 0x42997d
mov dword [0x4fdad0], edi
push 7
test ebp, ebp
jne 0x429967
push 0xffffffffffffffff
call fcn.00421d30
add esp, 8
test eax, eax
je 0x429971
push 0xfa
push 0x164
push 0x2d8
call fcn.0045da90
add esp, 0xc
jmp 0x429971
mov ebp, 1
cmp eax, ebp
jne 0x428db3
mov esi, dword [0x5fb9d4]
lea eax, [esi - 1]
cmp eax, ebp
ja 0x428fac
xor eax, eax
cmp dword [0x91239c], eax
setne al
xor ecx, ecx
cmp esi, ebp
setne cl
cmp eax, ecx
je 0x428fac
xor edx, edx
test eax, eax
sete dl
mov eax, edx
mov dword [0x91239c], eax
test eax, eax
je 0x428f07
xor ecx, ecx
call fcn.004618b0
mov ecx, ebp
call fcn.004618b0
jmp 0x428f7d
cmp dword [0x4fdaf0], 0
je 0x428f83
fild dword [0x91230c]
mov eax, dword [0x4fdaf4]
push 0
push eax
fimul dword [0x4fdaf8]
push 0
push 0
fmul qword [0x4d6ae0]
call fcn.004880e0
push eax
push 0
mov eax, 0x4fdafc
call fcn.004616d0
mov ecx, dword [0x4fdaf4]
mov edx, 0xa
sub edx, dword [0x4fdaf8]
push 0
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
push ecx
push 0
fimul dword [0x91230c]
push 0
fmul qword [0x4d6ae0]
call fcn.004880e0
push eax
push ebp
mov eax, 0x4fdafc
call fcn.004616d0
mov esi, dword [0x5fb9d4]
mov dword [0x5fb9e4], ebp
cmp ebx, ebp
jne 0x428fac
xor eax, eax
cmp dword [0x5fb9e8], ebp
setne al
sub esi, ebp
neg esi
sbb esi, esi
add esi, 2
mov dword [0x5fb9d4], esi
mov dword [0x5fb9e8], eax
lea ecx, [esi - 0x1b]
cmp ecx, ebp
ja 0x42908c
xor eax, eax
cmp dword [0x9123a0], eax
setne al
xor edx, edx
cmp esi, 0x1b
setne dl
cmp eax, edx
je 0x42908c
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
mov dword [0x9123a0], eax
test eax, eax
je 0x428feb
call fcn.0042b680
jmp 0x429050
mov edx, dword [0x912310]
xor ebx, ebx
mov dword [esp + 0x14], edx
xor edi, edi
mov esi, 0x6da3c4
mov edi, edi
cmp dword [esi - 0xc], ebx
je 0x429043
cmp dword [esi], ebx
jne 0x42900e
cmp dword [esi - 4], ebx
je 0x429040
fild dword [esi + 8]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi - 4]
fimul dword [esp + 0x14]
push eax
push ecx
push ebx
push ebx
neg edx
sbb edx, edx
push ebx
fmul qword [0x4d6ae0]
push edx
call fcn.004880e0
push eax
push ebx
lea eax, [esi + 0x14]
push eax
mov eax, edi
call fcn.00461a70
mov dword [esi + 4], ebx
add esi, 0x34
add edi, ebp
cmp esi, 0x6da4c8
jl 0x429000
mov dword [0x5fb9e4], ebp
cmp dword [esp + 0x30], ebp
jne 0x429086
xor ecx, ecx
cmp dword [0x5fb9e8], ebp
setne cl
xor edx, edx
cmp dword [0x5fb9d4], 0x1b
sete dl
mov dword [0x5fb9e8], ecx
add edx, 0x1b
mov esi, edx
mov dword [0x5fb9d4], esi
jmp 0x42908c
mov esi, dword [0x5fb9d4]
mov edi, dword [esp + 0x30]
lea eax, [esi - 0x29]
mov ecx, 4
cmp eax, ebp
ja 0x4290f0
xor eax, eax
cmp dword [0x9123a4], eax
setne al
xor edx, edx
cmp esi, 0x29
setne dl
cmp eax, edx
je 0x4290f0
xor edx, edx
test eax, eax
sete dl
mov dword [0x5fb9e4], ebp
mov dword [0x9123a4], edx
cmp edi, ebp
jne 0x4290f0
xor eax, eax
cmp dword [0x5fb9e8], ecx
setne al
xor edx, edx
add eax, 3
cmp esi, 0x2a
setne dl
mov dword [0x5fb9e8], eax
add edx, 0x29
mov esi, edx
mov dword [0x5fb9d4], esi
lea eax, [esi - 0xe]
cmp eax, ebp
ja 0x42914b
xor eax, eax
cmp dword [0x9123a8], eax
setne al
xor edx, edx
cmp esi, 0xe
setne dl
cmp eax, edx
je 0x42914b
xor edx, edx
test eax, eax
sete dl
mov dword [0x5fb9e4], ebp
mov dword [0x9123a8], edx
cmp edi, ebp
jne 0x42914b
xor eax, eax
cmp dword [0x5fb9e8], ecx
setne al
xor ecx, ecx
add eax, 3
cmp esi, 0xe
sete cl
mov dword [0x5fb9e8], eax
add ecx, 0xe
mov esi, ecx
mov dword [0x5fb9d4], esi
cmp esi, 0x37
je 0x4291c9
cmp esi, 0x45
je 0x42915a
cmp esi, 0x47
jne 0x429179
xor eax, eax
cmp esi, 0x45
setne al
push 0
push eax
call fcn.0043c740
mov esi, dword [0x5fb9d4]
add esp, 8
mov dword [0x5fb9e4], ebp
cmp esi, 0x38
je 0x4291d0
cmp esi, 0x46
je 0x429188
cmp esi, 0x48
jne 0x4291a6
xor eax, eax
cmp esi, 0x46
setne al
push ebp
push eax
call fcn.0043c740
mov esi, dword [0x5fb9d4]
add esp, 8
mov dword [0x5fb9e4], ebp
lea eax, [esi - 0x39]
cmp eax, 0xa
ja 0x4291f4
cmp edi, ebp
jne 0x4291d7
mov eax, dword [0x912368]
add eax, 0x64
xor edx, edx
cmp eax, 0x3e8
setg dl
dec edx
and eax, edx
jmp 0x4291da
mov eax, 2
jmp 0x429162
mov eax, 2
jmp 0x429190
imul eax, eax, 0x64
push eax
mov dword [0x912368], eax
call fcn.0043c930
mov esi, dword [0x5fb9d4]
add esp, 4
mov dword [0x5fb9e4], ebp
lea eax, [esi - 0x4b]
cmp eax, 9
ja 0x429247
mov dword [0x5fb9d8], eax
mov dword [0x5fb9e4], ebp
cmp edi, ebp
jne 0x429247
add dword [0x5fb9e8], ebp
cmp esi, 0x54
jl 0x429225
mov dword [0x5fb9d4], 0x4b
jmp 0x429a75
add esi, ebp
mov dword [0x5fb9d4], esi
cmp esi, 0x50
jne 0x429247
add dword [0x5fb9ec], ebp
mov dword [0x5fb9e8], 0
jmp 0x429a75
mov ebx, dword [0x4b939c]
lea eax, [esi - 0x55]
cmp eax, 1
ja 0x4293ff
mov edi, dword [0x5fb9d8]
mov eax, dword [edi*4 + 0x9123b0]
xor ecx, ecx
cmp esi, 0x55
setne cl
cmp eax, ecx
je 0x4293ff
xor edx, edx
test eax, eax
sete dl
mov eax, edx
mov dword [edi*4 + 0x9123b0], eax
test eax, eax
je 0x4293c7
mov ebp, 0x4b
cmp dword [0x4f7774], edi
jne 0x42932a
mov eax, dword [0x7ec5cc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4292e4
mov edi, dword [eax + 0x38]
test edi, edi
je 0x4292e4
mov eax, dword [edi + 8]
test eax, eax
je 0x4292c3
cmp eax, 3
je 0x4292c3
cmp eax, 1
jne 0x4292e4
cmp dword [edi + 0x74], 0xffffffff
je 0x4292e4
call ebx
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], ebp
mov dword [edi + 0x74], 0xffffffff
mov esi, dword [0x5fb9d4]
mov ecx, dword [0x7ec5cc]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x42932a
mov edi, dword [eax + 0x48]
test edi, edi
je 0x42932a
mov eax, dword [edi + 8]
test eax, eax
je 0x429309
cmp eax, 3
je 0x429309
cmp eax, 1
jne 0x42932a
cmp dword [edi + 0x74], 0xffffffff
je 0x42932a
call ebx
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], ebp
mov dword [edi + 0x74], 0xffffffff
mov esi, dword [0x5fb9d4]
mov edx, dword [0x4f7798]
cmp edx, dword [0x5fb9d8]
jne 0x4293c7
mov eax, dword [0x7ec5cc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x429381
mov edi, dword [eax + 0x3c]
test edi, edi
je 0x429381
mov eax, dword [edi + 8]
test eax, eax
je 0x429360
cmp eax, 3
je 0x429360
cmp eax, 1
jne 0x429381
cmp dword [edi + 0x74], 0xffffffff
je 0x429381
call ebx
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], ebp
mov dword [edi + 0x74], 0xffffffff
mov esi, dword [0x5fb9d4]
mov ecx, dword [0x7ec5cc]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x4293c7
mov edi, dword [eax + 0x4c]
test edi, edi
je 0x4293c7
mov eax, dword [edi + 8]
test eax, eax
je 0x4293a6
cmp eax, 3
je 0x4293a6
cmp eax, 1
jne 0x4293c7
cmp dword [edi + 0x74], 0xffffffff
je 0x4293c7
call ebx
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], ebp
mov dword [edi + 0x74], 0xffffffff
mov esi, dword [0x5fb9d4]
mov eax, 1
cmp dword [esp + 0x30], eax
jne 0x4293fa
xor edx, edx
cmp dword [0x5fb9e8], 5
sete dl
xor ecx, ecx
add edx, 5
cmp esi, 0x55
sete cl
mov dword [0x5fb9e8], edx
add ecx, 0x55
mov esi, ecx
mov dword [0x5fb9d4], esi
mov dword [0x5fb9e4], eax
cmp esi, 3
jl 0x42949e
cmp esi, 0xd
jg 0x42949e
cmp dword [esp + 0x30], 1
mov ecx, dword [0x91230c]
jne 0x429430
xor edx, edx
lea eax, [ecx + 0x64]
cmp eax, 0x3e8
setg dl
dec edx
and eax, edx
jmp 0x429436
lea eax, [esi - 3]
imul eax, eax, 0x64
mov dword [esp + 0x14], eax
cmp ecx, eax
je 0x42949e
fild dword [0x4fdaf8]
mov dword [0x91230c], eax
fimul dword [esp + 0x14]
fmul qword [0x4d6ae0]
call fcn.004880e0
push eax
push 0
xor edi, edi
call fcn.00461930
mov eax, 0xa
sub eax, dword [0x4fdaf8]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fimul dword [0x91230c]
fmul qword [0x4d6ae0]
call fcn.004880e0
push eax
push 1
call fcn.00461930
mov esi, dword [0x5fb9d4]
mov dword [0x5fb9e4], 1
cmp esi, 0x1d
jl 0x429580
cmp esi, 0x27
jg 0x429580
cmp dword [esp + 0x30], 1
mov edi, dword [0x912310]
jne 0x4294cf
xor ecx, ecx
lea eax, [edi + 0x64]
cmp eax, 0x3e8
setg cl
dec ecx
and eax, ecx
jmp 0x4294d5
lea eax, [esi - 0x1d]
imul eax, eax, 0x64
mov dword [esp + 0x14], eax
cmp edi, eax
je 0x429580
fild dword [esp + 0x14]
xor ebp, ebp
mov dword [0x912310], eax
lea edi, [ebp + 0x10]
fstp qword [esp + 0x14]
mov ebx, 0x6da3cc
fild dword [ebx]
fmul qword [esp + 0x14]
fmul qword [0x4d6ae0]
call fcn.004880e0
mov edx, dword [0x7ec5cc]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x42955e
cmp ebp, 0xa
jge 0x42955e
test ebp, ebp
jl 0x42955e
cmp ebp, 0x80
jge 0x42955e
mov esi, dword [edi + ecx]
test esi, esi
je 0x42955e
mov dword [esi + 0x90], 1
mov dword [esi + 0x9c], eax
mov dword [esi + 0x94], 0
call dword [0x4b939c]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], 0
add edi, 4
inc ebp
add ebx, 0x34
cmp edi, 0x24
jl 0x4294f8
mov esi, dword [0x5fb9d4]
mov ebx, dword [0x4b939c]
mov dword [0x5fb9e4], 1
cmp esi, 0x2b
jl 0x429656
cmp esi, 0x35
jg 0x429656
cmp dword [esp + 0x30], 1
jne 0x4295b2
mov eax, dword [0x912314]
add eax, 0x64
xor ecx, ecx
cmp eax, 0x3e8
setg cl
dec ecx
and ecx, eax
mov ebp, ecx
jmp 0x4295b8
lea ebp, [esi - 0x2b]
imul ebp, ebp, 0x64
cmp dword [0x912314], ebp
je 0x429656
mov edi, 5
mov dword [0x912314], ebp
lea ebx, [edi + 0x1f]
mov dword [esp + 0x14], 3
lea ebx, [ebx]
mov edx, dword [0x7ec5cc]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x429635
cmp edi, 0xa
jge 0x429635
test edi, edi
jl 0x429635
cmp edi, 0x80
jge 0x429635
mov esi, dword [ebx + eax]
test esi, esi
je 0x429635
mov dword [esi + 0x90], 1
mov dword [esi + 0x9c], ebp
mov dword [esi + 0x94], 0
call dword [0x4b939c]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], 0
mov eax, 1
add ebx, 4
add edi, eax
sub dword [esp + 0x14], eax
jne 0x4295e0
mov esi, dword [0x5fb9d4]
mov ebx, dword [0x4b939c]
mov dword [0x5fb9e4], eax
cmp esi, 0x10
jl 0x429698
cmp esi, 0x1a
jg 0x429698
cmp dword [esp + 0x30], 1
mov ecx, dword [0x912318]
jne 0x42967f
xor edx, edx
lea eax, [ecx + 0x64]
cmp eax, 0x3e8
setg dl
dec edx
and eax, edx
jmp 0x429685
lea eax, [esi - 0x10]
imul eax, eax, 0x64
cmp ecx, eax
je 0x429698
mov dword [0x912318], eax
mov dword [0x5fb9e4], 1
lea ebp, [esi - 0x57]
cmp ebp, 0xa
ja 0x429862
cmp dword [esp + 0x30], 1
mov eax, dword [0x5fb9d8]
mov ecx, dword [eax*4 + 0x912320]
jne 0x4296cb
xor edx, edx
lea eax, [ecx + 0x64]
cmp eax, 0x3e8
setg dl
dec edx
and edx, eax
mov ebp, edx
jmp 0x4296ce
imul ebp, ebp, 0x64
cmp dword [0x4fdadc], 0x12
jge 0x429862
cmp ecx, ebp
je 0x429862
mov eax, dword [0x5fb9d8]
mov dword [eax*4 + 0x912320], ebp
cmp dword [0x4f7774], eax
jne 0x42977a
mov eax, dword [0x7ec5cc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x42973a
mov edi, dword [eax + 0x38]
test edi, edi
je 0x42973a
xor esi, esi
mov dword [edi + 0x90], 1
mov dword [edi + 0x9c], ebp
mov dword [edi + 0x94], esi
call ebx
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], esi
mov esi, dword [0x5fb9d4]
mov ecx, dword [0x7ec5cc]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x42977a
mov edi, dword [eax + 0x48]
test edi, edi
je 0x42977a
xor esi, esi
mov dword [edi + 0x90], 1
mov dword [edi + 0x9c], ebp
mov dword [edi + 0x94], esi
call ebx
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], esi
mov esi, dword [0x5fb9d4]
mov edx, dword [0x5fb9d8]
cmp dword [0x4f7798], edx
jne 0x42980b
mov eax, dword [0x7ec5cc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4297cb
mov edi, dword [eax + 0x3c]
test edi, edi
je 0x4297cb
xor esi, esi
mov dword [edi + 0x90], 1
mov dword [edi + 0x9c], ebp
mov dword [edi + 0x94], esi
call ebx
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], esi
mov esi, dword [0x5fb9d4]
mov ecx, dword [0x7ec5cc]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x42980b
mov edi, dword [eax + 0x4c]
test edi, edi
je 0x42980b
xor esi, esi
mov dword [edi + 0x90], 1
mov dword [edi + 0x9c], ebp
mov dword [edi + 0x94], esi
call ebx
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], esi
mov esi, dword [0x5fb9d4]
mov edx, dword [0x5fb9d8]
cmp dword [0x4fdad8], edx
jne 0x429858
mov eax, dword [0x7ec5cc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x429858
mov edi, dword [eax + 0x58]
test edi, edi
je 0x429858
xor esi, esi
mov dword [edi + 0x90], 1
mov dword [edi + 0x9c], ebp
mov dword [edi + 0x94], esi
call ebx
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], esi
mov esi, dword [0x5fb9d4]
mov dword [0x5fb9e4], 1
cmp esi, 0x28
jne 0x42988f
mov ecx, dword [0x912310]
push 0
push 0
push 0
push 0
push 0
push 0
push ecx
push 0
push str.TEST_SE.ogg
lea eax, [esi - 0x23]
call fcn.00461a70
mov esi, dword [0x5fb9d4]
cmp esi, 0x36
jne 0x4298bc
mov edx, dword [0x912314]
push 0
push 0
push 0
push 0
push 0
push 0
push edx
push 0
push str.TEST_SYSSE.ogg
lea eax, [esi - 0x31]
call fcn.00461a70
mov esi, dword [0x5fb9d4]
cmp esi, 0x44
jne 0x4298e8
mov eax, dword [0x912368]
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 1
push str.TEST_VOICE.ogg
lea eax, [esi - 0x3c]
call fcn.00461a70
mov esi, dword [0x5fb9d4]
lea eax, [esi - 0x62]
cmp eax, 2
ja 0x4298fb
call fcn.0043ce70
mov esi, dword [0x5fb9d4]
cmp esi, 0x49
jl 0x428db9
cmp esi, 0x4a
jg 0x428db9
xor eax, eax
cmp esi, 0x49
setne al
cmp dword [0x912410], eax
je 0x428db9
mov dword [0x912410], eax
mov eax, 1
mov dword [0x5fb9e4], eax
cmp dword [esp + 0x30], eax
jne 0x428db9
xor ecx, ecx
cmp dword [0x5fb9e8], 8
setne cl
xor edx, edx
add ecx, 7
cmp esi, 0x49
sete dl
mov dword [0x5fb9e8], ecx
add edx, 0x49
mov esi, edx
mov dword [0x5fb9d4], esi
jmp 0x428db9
push 0
call fcn.00421d30
add esp, 8
mov esi, dword [0x5fb9d4]
mov dword [0x5fb9e4], edi
cmp esi, 0x6d
jne 0x4299a0
push 0x12c
call fcn.00425620
add esp, 4
call fcn.00435b50
mov esi, dword [0x5fb9d4]
mov dword [0x5fb9e4], edi
cmp esi, 0x6c
jne 0x429a0c
cmp word [0x6d889c], 0
jne 0x4299ee
mov dword [0x4fdabc], edi
push 2
test ebp, ebp
jne 0x4299e2
push 0xffffffffffffffff
call fcn.00421d30
add esp, 8
test eax, eax
je 0x429a00
push 0xfa
push 0x164
push 0x2d8
call fcn.0045da90
add esp, 0xc
jmp 0x429a00
push 0
call fcn.00421d30
add esp, 8
jmp 0x429a00
push 0x12c
call fcn.00425620
add esp, 4
call fcn.00435b50
mov esi, dword [0x5fb9d4]
mov dword [0x5fb9e4], edi
cmp esi, 0x6b
jne 0x429a68
mov dword [0x4fdab8], edi
push 3
test ebp, ebp
jne 0x429a50
push 0xffffffffffffffff
call fcn.00421d30
add esp, 8
test eax, eax
je 0x429a5a
push 0xfa
push 0x164
push 0x2d8
call fcn.0045da90
mov esi, dword [0x5fb9d4]
add esp, 0xc
mov dword [0x5fb9e4], edi
jmp 0x429a71
push 0
call fcn.00421d30
add esp, 8
mov esi, dword [0x5fb9d4]
mov dword [0x5fb9e4], edi
jmp 0x429a71
cmp dword [0x5fb9e4], 0
je 0x429aa1
test esi, esi
je 0x429aa1
cmp dword [0x9123a4], 0
jne 0x429aa1
mov eax, dword [0x912314]
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
push str.sysse02.ogg
mov eax, 5
call fcn.00461a70
mov ecx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c
ret