Function at 0x54e600
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x54e630
test dword [0x87ed4c], 0xffffffff
jne 0x54f610
call fcn.007663a0
jmp fcn.0054e600
push edi
push esi
push ebp
push ebx
sub esp, 0xa4
mov esi, ecx
mov edi, dword [esp + 0xc4]
mov ebx, eax
mov ebp, dword [ebx]
mov dword [esp + 0xa0], edx
mov eax, 1
test edi, edi
cmove eax, edi
movzx edx, byte [eax + esi + 0x19]
mov edi, dword [esi + eax*4 + 0x1c]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], edx
test edx, edx
je 0x54e677
test edi, edi
je 0x54e684
mov eax, edi
add esp, 0xa4
pop ebx
pop ebp
pop esi
pop edi
ret
xor edi, edi
mov dword [esp + 0x88], edi
lea eax, [esp + 0x88]
lea edx, [esp + 0x8c]
mov dword [esp + 0x8c], edi
mov ecx, esi
mov dword [esp + 0xc], eax
mov eax, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xa0]
call fcn.00556320
test eax, eax
jne 0x54f264
xor eax, eax
cmp dword [esi + 0x14], 0
mov dword [esp + 0x94], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], eax
jle 0x54ecd6
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x90], esi
mov dword [esp + 0x60], 0x78e3f8
mov eax, 3
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0x78e3f4
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x54e729
mov edx, dword [esp + 0x40]
mov eax, dword [eax + edx*4]
jmp 0x54e733
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x24]
mov edx, dword [esp + 0x88]
test edx, edx
je 0x54e75e
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0xa0]
mov esi, dword [edx + ecx*4]
lea edx, [esi + esi*2]
mov edi, dword [edi + 0x10]
mov edx, dword [edi + edx*8]
mov dword [esp + 0x70], edx
jmp 0x54e76b
mov edx, 0x79756c
mov dword [esp + 0x70], 0x79756c
lea edi, [eax + eax*2]
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
mov esi, dword [ecx + 0x10]
mov eax, dword [esi + edi*8]
mov dword [esp + 0x48], edi
mov ecx, edx
mov dword [esp + 0x78], eax
test edx, edx
je 0x54f602
movsx esi, byte [edx]
test esi, esi
je 0x54e79e
inc ecx
movsx esi, byte [ecx]
test esi, esi
jne 0x54e796
sub ecx, edx
and ecx, 0x3fffffff
mov dword [esp + 0x74], ecx
mov edx, eax
test eax, eax
je 0x54f5fb
movsx ecx, byte [eax]
test ecx, ecx
je 0x54e7c3
inc edx
movsx ecx, byte [edx]
test ecx, ecx
jne 0x54e7bb
sub edx, eax
and edx, 0x3fffffff
mov eax, dword [ebx]
mov dword [esp + 0x7c], edx
mov edx, 0x1a
lea ecx, [esp + 0x60]
mov dword [esp + 0xc], 1
call fcn.004e34a0
mov esi, eax
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, esi
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x1a
lea ecx, [esp + 0x70]
call fcn.004e34a0
mov edi, eax
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, edi
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x76
xor ecx, ecx
call fcn.004e34a0
mov dword [esp + 0x4c], eax
mov eax, dword [ebx]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc], edi
mov ecx, esi
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x1a
lea ecx, [esp + 0x78]
call fcn.004e34a0
mov edi, eax
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, edi
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x4c
xor ecx, ecx
call fcn.004e34a0
mov esi, eax
mov eax, dword [ebx]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xc], edi
mov edx, esi
call fcn.004e3960
cmp dword [esp + 0x94], 0
je 0x54f5ef
test esi, esi
je 0x54e8f9
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], 0
mov edx, 0x45
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xc], esi
mov edx, edi
call fcn.004e3960
mov dword [esp + 0x94], edi
cmp dword [esp + 0xc4], 0
je 0x54ea8b
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x1a
lea ecx, [esp + 0x60]
call fcn.004e34a0
mov esi, eax
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, esi
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x1a
lea ecx, [esp + 0x70]
call fcn.004e34a0
mov edi, eax
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, edi
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x76
xor ecx, ecx
call fcn.004e34a0
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov ecx, esi
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x1a
lea ecx, [esp + 0x68]
call fcn.004e34a0
mov dword [esp + 0x3c], eax
mov eax, dword [ebx]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], 0
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x1a
lea ecx, [esp + 0x70]
call fcn.004e34a0
mov esi, eax
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, esi
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x76
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov eax, dword [ebx]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], esi
mov edx, edi
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x46
xor ecx, ecx
call fcn.004e34a0
mov esi, eax
mov eax, dword [ebx]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov edx, esi
call fcn.004e3960
cmp dword [esp + 0x80], 0
je 0x54f1e9
test esi, esi
je 0x54ea8b
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], 0
mov edx, 0x45
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xc], esi
mov edx, edi
call fcn.004e3960
mov dword [esp + 0x80], edi
cmp dword [esp + 0x98], 6
je 0x54ecb0
cmp dword [esp + 0x98], 9
je 0x54f555
cmp dword [esp + 0x98], 8
jne 0x54eae7
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x48]
mov edx, dword [eax]
mov ecx, dword [edx + 0x10]
mov edx, dword [ecx + esi*8 + 4]
test edx, edx
je 0x54f1f5
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], 0
xor ecx, ecx
call fcn.0044cfe0
mov edi, eax
jmp 0x54eb12
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x62
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, edi
xor ecx, ecx
call fcn.004e3960
mov esi, dword [ebx]
test ebp, ebp
je 0x54f522
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
cmp edx, eax
jg 0x54ec38
lea eax, [edx + edx]
lea eax, [eax + edx*8]
mov edx, dword [ebp + 0xc]
lea ecx, [eax*4 + 0x50]
mov eax, esi
call fcn.00490370
mov edx, eax
test edx, edx
jne 0x54ec1c
test edi, edi
je 0x54eb60
mov eax, esi
mov edx, edi
call fcn.0044db10
test ebp, ebp
je 0x54ec18
mov edx, dword [ebp + 0xc]
cmp dword [ebp], 0
jle 0x54ec08
xor edi, edi
mov dword [esp + 0x44], ebx
mov ebx, edx
mov edx, dword [ebx]
mov eax, esi
call fcn.004cdfe0
mov eax, dword [ebx + 4]
test esi, esi
je 0x54f22f
test eax, eax
je 0x54ebb9
cmp eax, dword [esi + 0xf0]
jb 0x54f225
cmp eax, dword [esi + 0xf4]
jae 0x54f225
mov ecx, dword [esi + 0xec]
mov dword [eax], ecx
dec dword [esi + 0xe4]
mov dword [esi + 0xec], eax
mov eax, dword [ebx + 8]
test esi, esi
je 0x54f21c
test eax, eax
je 0x54ebf4
cmp eax, dword [esi + 0xf0]
jb 0x54f212
cmp eax, dword [esi + 0xf4]
jae 0x54f212
mov ecx, dword [esi + 0xec]
mov dword [eax], ecx
dec dword [esi + 0xe4]
mov dword [esi + 0xec], eax
inc edi
add ebx, 0x14
cmp edi, dword [ebp]
jl 0x54eb75
mov ebx, dword [esp + 0x44]
mov edx, dword [ebp + 0xc]
mov eax, esi
call fcn.004e33d8
mov eax, esi
mov edx, ebp
call fcn.004e33d8
xor ebp, ebp
jmp 0x54ec5a
mov dword [ebp + 0xc], edx
mov eax, esi
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [ebp]
shr edx, 4
mov dword [ebp + 4], edx
mov edx, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
inc eax
mov dword [ebp], eax
pxor xmm0, xmm0
movq qword [edx + ecx*4], xmm0
movq qword [edx + ecx*4 + 8], xmm0
movd dword [edx + ecx*4 + 0x10], xmm0
mov dword [edx + ecx*4], edi
test ebp, ebp
je 0x54ecb0
mov eax, dword [ebp]
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
lea edx, [eax + eax*4]
mov eax, dword [ebx]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ecx
test esi, esi
je 0x54f238
lea edx, [edi + 1]
call fcn.004a76c0
test eax, eax
je 0x54eca4
push edi
push esi
push eax
mov dword [esp + 0x38], eax
call fcn.007666b0
mov eax, dword [esp + 0x38]
add esp, 0xc
mov byte [eax + edi], 0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [edx + ecx*4 - 0x10], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x90]
inc eax
cmp eax, dword [edx + 0x14]
mov dword [esp + 0x40], eax
jl 0x54e6f8
mov esi, edx
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
mov eax, ebp
call fcn.004e33d8
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], edx
test edx, edx
je 0x54f517
mov eax, dword [esp + 0x54]
movsx edx, byte [eax]
test edx, edx
je 0x54ed14
mov edx, dword [esp + 0x50]
inc edx
movsx eax, byte [edx]
test eax, eax
jne 0x54ed08
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x54]
and eax, 0x3fffffff
mov dword [esp + 0x50], eax
cmp dword [esp + 0x98], 6
je 0x54f285
xor eax, eax
mov dword [esp + 0x48], eax
movzx ecx, byte [ebp + 0xe2]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x40], ecx
lea edx, [edi + 0x4d]
mov eax, ebp
mov byte [ebp + 0xe2], 0
mov dword [esp + 0x28], edx
call fcn.004a76c0
mov edi, eax
test edi, edi
je 0x54ed74
push dword [esp + 0x28]
push 0
push edi
call fcn.00766740
add esp, 0xc
test edi, edi
je 0x54f033
mov edx, dword [esp + 0x50]
lea eax, [edi + 0x24]
mov dword [esp + 0x4c], eax
lea ecx, [edi + 0x4c]
mov dword [edi + 0x1c], eax
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
push edx
push dword [esp + 0x58]
push ecx
call fcn.007666b0
add esp, 0xc
mov edx, dword [esp + 0x94]
mov dword [esp + 0xc], 0
mov eax, ebp
mov ecx, 1
call fcn.0044cfe0
cmp dword [esp + 0x58], 0
mov dword [edi + 0x38], eax
je 0x54efb1
movzx eax, byte [ebp + 0x1e]
test eax, eax
jne 0x54efb1
movzx eax, byte [ebp + 0xe2]
test eax, eax
je 0x54ee21
movzx eax, word [ebp + 0xe0]
cmp eax, 0x10
jl 0x54ee21
mov eax, dword [ebp + 0xec]
mov dword [esp + 0x28], eax
test eax, eax
je 0x54ee21
mov edx, dword [eax]
mov ecx, dword [ebp + 0xe4]
mov eax, dword [ebp + 0xe8]
mov dword [ebp + 0xec], edx
inc ecx
cmp ecx, eax
cmovge eax, ecx
mov dword [ebp + 0xe4], ecx
mov dword [ebp + 0xe8], eax
jmp 0x54ee3a
mov eax, 0x10
call fcn.0041ebd4
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0
jne 0x54ee3a
mov byte [ebp + 0x1e], 1
cmp dword [esp + 0x28], 0
je 0x54efb1
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
mov dword [eax + 8], 0
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov ecx, dword [edx]
lea edx, [ecx + ecx*4]
shl edx, 2
mov eax, ebp
call fcn.004a76c0
mov edx, eax
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0xc], edx
test edx, edx
je 0x54f24d
mov ecx, dword [esp + 0x58]
cmp dword [ecx], 0
mov eax, dword [ecx + 0xc]
jle 0x54efb7
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x84], ebp
mov ebp, edx
mov dword [esp + 0x44], ebx
mov ebx, eax
mov dword [esp + 0x90], esi
mov eax, dword [esp + 0x84]
mov edx, dword [ebx]
mov dword [esp + 0xc], 0
mov ecx, 1
call fcn.0044cfe0
mov dword [ebp], eax
mov esi, dword [ebx + 4]
test esi, esi
je 0x54f246
movsx ecx, byte [esi]
mov edi, esi
test ecx, ecx
je 0x54eee5
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x54eedd
mov eax, dword [esp + 0x84]
sub edi, esi
and edi, 0x3fffffff
inc edi
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x54ef13
push edi
push esi
push eax
mov dword [esp + 0x5c], eax
call fcn.007666b0
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov dword [ebp + 4], eax
mov esi, dword [ebx + 8]
test esi, esi
je 0x54f23f
movsx ecx, byte [esi]
mov edi, esi
test ecx, ecx
je 0x54ef32
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x54ef2a
mov eax, dword [esp + 0x84]
sub edi, esi
and edi, 0x3fffffff
inc edi
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x54ef60
push edi
push esi
push eax
mov dword [esp + 0x60], eax
call fcn.007666b0
mov eax, dword [esp + 0x60]
add esp, 0xc
mov dword [ebp + 8], eax
movzx ecx, byte [ebx + 0xc]
mov byte [ebp + 0xc], cl
mov ecx, dword [esp + 0x5c]
inc ecx
mov byte [ebp + 0xd], 0
movzx esi, word [ebx + 0xe]
mov word [ebp + 0xe], si
movzx edi, word [ebx + 0x10]
mov esi, dword [esp + 0x58]
mov word [ebp + 0x10], di
add ebp, 0x14
add ebx, 0x14
cmp ecx, dword [esi]
mov dword [esp + 0x5c], ecx
jl 0x54eeab
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x90]
jmp 0x54efb7
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x48]
mov dword [edi + 0x3c], eax
mov eax, ebp
mov ecx, 1
call fcn.00572ab0
cmp dword [esp + 0x80], 0
mov dword [edi + 0x2c], eax
je 0x54f039
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x13
xor ecx, ecx
call fcn.004e34a0
mov dword [esp + 0x28], eax
mov eax, dword [ebx]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xc], 0
call fcn.004e3960
mov edx, dword [esp + 0x28]
mov dword [esp + 0x80], edx
mov eax, ebp
mov ecx, 1
mov dword [esp + 0xc], 0
call fcn.0044cfe0
mov dword [edi + 0xc], eax
jmp 0x54f039
xor eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x94], 0
mov byte [ebp + 0xe2], al
je 0x54f05b
mov edx, dword [esp + 0x94]
mov eax, ebp
call fcn.0044db10
cmp dword [esp + 0x80], 0
je 0x54f073
mov edx, dword [esp + 0x80]
mov eax, ebp
call fcn.0044db10
cmp dword [esp + 0x58], 0
je 0x54f13e
mov eax, dword [esp + 0x58]
cmp dword [eax], 0
mov edx, dword [eax + 0xc]
jle 0x54f12c
xor ebx, ebx
mov dword [esp + 0x3c], edi
mov edi, eax
mov dword [esp + 0x90], esi
mov esi, edx
mov edx, dword [esi]
mov eax, ebp
call fcn.004cdfe0
mov eax, dword [esi + 4]
test eax, eax
je 0x54f0db
cmp eax, dword [ebp + 0xf0]
jb 0x54f27b
cmp eax, dword [ebp + 0xf4]
jae 0x54f27b
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
dec dword [ebp + 0xe4]
mov dword [ebp + 0xec], eax
mov eax, dword [esi + 8]
test eax, eax
je 0x54f10e
cmp eax, dword [ebp + 0xf0]
jb 0x54f271
cmp eax, dword [ebp + 0xf4]
jae 0x54f271
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
dec dword [ebp + 0xe4]
mov dword [ebp + 0xec], eax
inc ebx
add esi, 0x14
cmp ebx, dword [edi]
jl 0x54f09f
mov esi, dword [esp + 0x90]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0xc]
mov eax, ebp
call fcn.004e33d8
mov edx, dword [esp + 0x58]
mov eax, ebp
call fcn.004e33d8
cmp dword [esp + 0x48], 0
je 0x54f15b
mov edx, dword [esp + 0x48]
mov eax, ebp
call fcn.004ce330
mov edx, dword [esp + 0x48]
mov eax, ebp
call fcn.004e33d8
movzx eax, byte [ebp + 0x1e]
cmp eax, 1
je 0x54f25b
cmp dword [esp + 0x98], 6
jne 0x54f183
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0xc4], 0
mov byte [eax], 0x74
jmp 0x54f1b1
cmp dword [esp + 0x98], 9
je 0x54f197
cmp dword [esp + 0xc4], 0
jmp 0x54f1aa
cmp dword [esp + 0xc4], 0
jne 0x54f1aa
mov eax, dword [esp + 0x4c]
mov byte [eax], 0x6a
jmp 0x54f1b1
mov eax, dword [esp + 0x4c]
mov byte [eax], 0x6b
mov ebp, eax
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
mov dword [ebp + 4], edi
mov eax, dword [edx + 0x44]
mov dword [edi + 0x14], eax
mov eax, 0x6a
mov ecx, dword [edx + 0x44]
mov dword [edi + 0x18], ecx
mov dword [esi + ebx*4 + 0x1c], edi
mov esi, 0x6b
cmovne eax, esi
mov byte [edi + 8], al
jmp 0x54e677
mov dword [esp + 0x80], esi
jmp 0x54ea8b
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x62
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
jmp 0x54eaff
call fcn.004c69c4
jmp 0x54ebf4
test eax, eax
jne 0x54f212
jmp 0x54ebf4
call fcn.004c69c4
jmp 0x54ebb9
test eax, eax
jne 0x54f225
jmp 0x54ebb9
xor eax, eax
jmp 0x54eca4
xor eax, eax
jmp 0x54ef60
xor eax, eax
jmp 0x54ef13
mov edx, ecx
mov eax, ebp
call fcn.004e33d8
jmp 0x54efb1
mov eax, ebp
mov edx, edi
call fcn.005505f0
xor eax, eax
add esp, 0xa4
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.004c69c4
jmp 0x54f10e
call fcn.004c69c4
jmp 0x54f0db
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x34], eax
mov eax, str.foreign_key_constraint_failed
mov dword [esp + 0x38], edx
mov edx, eax
mov dword [esp + 0x2c], str.foreign_key_constraint_failed
inc eax
movsx ecx, byte [eax]
test ecx, ecx
jne 0x54f2a4
sub eax, edx
and eax, 0x3fffffff
mov dword [esp + 0x30], eax
mov eax, ebp
mov dword [esp + 0xc], 0
mov edx, 0x38
lea ecx, [esp + 0x2c]
call fcn.004e34a0
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0
je 0x54f2de
mov byte [eax + 1], 2
mov eax, dword [ebx]
mov dword [esp + 0x28], eax
mov edx, 0x10
call fcn.004a76c0
mov dword [esp + 0x40], eax
cmp dword [esp + 0x40], 0
je 0x54f38d
pxor xmm0, xmm0
movq qword [eax], xmm0
movq qword [eax + 8], xmm0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
cmp edx, ecx
jg 0x54f363
lea edi, [edx + edx]
lea eax, [edi + edx*8]
mov edx, dword [esp + 0x40]
lea ecx, [eax*4 + 0x50]
mov eax, dword [esp + 0x28]
mov edx, dword [edx + 0xc]
call fcn.00490370
pxor xmm0, xmm0
mov edx, eax
test edx, edx
je 0x54f38d
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
mov dword [ecx + 0xc], edx
call fcn.0044dae0
pxor xmm0, xmm0
mov edx, eax
mov ecx, dword [esp + 0x40]
mov eax, 0xcccccccd
mul edx
shr edx, 4
mov dword [ecx + 4], edx
mov ecx, dword [ecx]
mov edi, dword [esp + 0x40]
lea eax, [ecx + ecx*4]
inc ecx
mov edx, dword [edi + 0xc]
mov dword [edi], ecx
movq qword [edx + eax*4], xmm0
movq qword [edx + eax*4 + 8], xmm0
movd dword [edx + eax*4 + 0x10], xmm0
mov ecx, dword [esp + 0x3c]
mov dword [edx + eax*4], ecx
jmp 0x54f498
cmp dword [esp + 0x3c], 0
je 0x54f3a1
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
call fcn.0044db10
cmp dword [esp + 0x40], 0
je 0x54f492
mov eax, dword [esp + 0x40]
cmp dword [eax], 0
mov edx, dword [eax + 0xc]
jle 0x54f47c
xor edi, edi
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x44], ebx
mov ebx, edx
mov dword [esp + 0x90], esi
mov esi, eax
mov edx, dword [ebx]
mov eax, ebp
call fcn.004cdfe0
mov eax, dword [ebx + 4]
test ebp, ebp
je 0x54f50e
test eax, eax
je 0x54f41c
cmp eax, dword [ebp + 0xf0]
jb 0x54f504
cmp eax, dword [ebp + 0xf4]
jae 0x54f504
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
dec dword [ebp + 0xe4]
mov dword [ebp + 0xec], eax
mov eax, dword [ebx + 8]
test ebp, ebp
je 0x54f4fb
test eax, eax
je 0x54f457
cmp eax, dword [ebp + 0xf0]
jb 0x54f4f1
cmp eax, dword [ebp + 0xf4]
jae 0x54f4f1
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
dec dword [ebp + 0xe4]
mov dword [ebp + 0xec], eax
inc edi
add ebx, 0x14
cmp edi, dword [esi]
jl 0x54f3d8
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x28]
call fcn.004e33d8
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
call fcn.004e33d8
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0xc], 0
mov eax, ebp
xor edx, edx
lea ecx, [esp + 0x34]
call fcn.005569f0
mov ecx, eax
mov edi, dword [esp + 0x94]
mov dword [esp + 0xc], edi
xor edx, edx
mov eax, ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x40]
call fcn.004f09c0
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x94], eax
jmp 0x54ed39
call fcn.004c69c4
jmp 0x54f457
test eax, eax
jne 0x54f4f1
jmp 0x54f457
call fcn.004c69c4
jmp 0x54f41c
test eax, eax
jne 0x54f504
jmp 0x54f41c
xor eax, eax
mov dword [esp + 0x50], eax
jmp 0x54ed25
mov eax, esi
mov edx, 0x10
call fcn.004a76c0
mov ebp, eax
test ebp, ebp
je 0x54f542
pxor xmm0, xmm0
movq qword [ebp], xmm0
movq qword [ebp + 8], xmm0
jne 0x54eb1c
test edi, edi
jne 0x54eb4f
jmp 0x54eb58
cmp dword [esp + 0xc4], 0
je 0x54ecb0
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x1a
lea ecx, [esp + 0x68]
call fcn.004e34a0
mov dword [esp + 0x28], eax
mov eax, dword [ebx]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xc], 0
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x1a
lea ecx, [esp + 0x70]
call fcn.004e34a0
mov esi, eax
mov eax, dword [ebx]
mov dword [esp + 0xc], 0
mov edx, esi
xor ecx, ecx
call fcn.004e3960
mov eax, dword [ebx]
mov dword [esp + 0xc], 1
mov edx, 0x76
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov eax, dword [ebx]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], esi
mov edx, edi
call fcn.004e3960
jmp 0x54eb12
mov dword [esp + 0x94], esi
jmp 0x54e8f9
xor edx, edx
jmp 0x54e7cb
xor ecx, ecx
jmp 0x54e7a6
push edi
push esi
push ebp
push ebx
sub esp, 0xa4
mov esi, ecx
mov dword [esp + 0xa0], edx
mov ebx, eax
mov ebp, dword [ebx]
xor ecx, ecx
cmp dword [esp + 0xc4], 0
setne cl
mov dword [esp + 0x98], ecx
movzx eax, byte [ecx + esi + 0x19]
mov dword [esp + 0x9c], eax
mov edi, dword [esi + ecx*4 + 0x1c]
test eax, eax
je 0x54f653
test edi, edi
je 0x54f660
mov eax, edi
add esp, 0xa4
pop ebx
pop ebp
pop esi
pop edi
ret
xor edi, edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
lea eax, [esp + 0x88]
mov dword [esp + 0xc], eax
lea edx, [esp + 0x8c]
mov dword [esp + 0x10], edx
mov eax, ebx
mov edx, dword [esp + 0xa0]
mov ecx, esi
call fcn.00556320
test eax, eax
jne 0x550240
xor eax, eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], eax
cmp dword [esi + 0x14], 0
jle 0x54fcb2
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x90], esi
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x60], 0x78e3f8
mov eax, 3
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0x78e3f4
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x54f705
mov edx, dword [esp + 0x40]
mov eax, dword [eax + edx*4]
jmp 0x54f70f
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x24]
mov edx, dword [esp + 0x88]
test edx, edx
je 0x54f73a
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x40]
mov esi, dword [edx + ecx*4]
lea edx, [esi + esi*2]
mov edi, dword [esp + 0xa0]
mov edi, dword [edi + 0x10]
mov edx, dword [edi + edx*8]
mov dword [esp + 0x70], edx
jmp 0x54f747
mov edx, 0x79756c
mov dword [esp + 0x70], 0x79756c
lea edi, [eax + eax*2]
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
mov esi, dword [ecx + 0x10]
mov eax, dword [esi + edi*8]
mov dword [esp + 0x78], eax
mov ecx, edx
test edx, edx
je 0x5505e3
movsx esi, byte [edx]
test esi, esi
je 0x54f77a
inc ecx
movsx esi, byte [ecx]
test esi, esi
jne 0x54f772
sub ecx, edx
and ecx, 0x3fffffff
mov dword [esp + 0x74], ecx
mov edx, eax
test eax, eax
je 0x5505dc
movsx ecx, byte [eax]
test ecx, ecx
je 0x54f79f
inc edx
movsx ecx, byte [edx]
test ecx, ecx
jne 0x54f797
sub edx, eax
and edx, 0x3fffffff
mov dword [esp + 0x7c], edx
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x60]
call fcn.004e34a0
mov esi, eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, esi
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x70]
call fcn.004e34a0
mov edi, eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, edi
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x76
xor ecx, ecx
call fcn.004e34a0
mov dword [esp + 0x4c], eax
mov dword [esp + 0xc], edi
mov eax, dword [ebx]
mov edx, dword [esp + 0x4c]
mov ecx, esi
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x78]
call fcn.004e34a0
mov edi, eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, edi
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x4c
xor ecx, ecx
call fcn.004e34a0
mov esi, eax
mov dword [esp + 0xc], edi
mov eax, dword [ebx]
mov edx, esi
mov ecx, dword [esp + 0x4c]
call fcn.004e3960
cmp dword [esp + 0x94], 0
je 0x5505d0
test esi, esi
je 0x54f8d5
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x84]
mov edx, 0x45
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x84]
mov edx, edi
mov ecx, dword [esp + 0x94]
call fcn.004e3960
mov dword [esp + 0x94], edi
cmp dword [esp + 0xc4], 0
je 0x54fa67
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x60]
call fcn.004e34a0
mov esi, eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, esi
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x70]
call fcn.004e34a0
mov edi, eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, edi
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x76
xor ecx, ecx
call fcn.004e34a0
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], edi
mov eax, dword [ebx]
mov edx, dword [esp + 0x38]
mov ecx, esi
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x68]
call fcn.004e34a0
mov dword [esp + 0x3c], eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, dword [esp + 0x3c]
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x70]
call fcn.004e34a0
mov esi, eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, esi
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x76
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov dword [esp + 0xc], esi
mov eax, dword [ebx]
mov edx, edi
mov ecx, dword [esp + 0x3c]
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x46
xor ecx, ecx
call fcn.004e34a0
mov esi, eax
mov dword [esp + 0xc], edi
mov eax, dword [ebx]
mov edx, esi
mov ecx, dword [esp + 0x38]
call fcn.004e3960
cmp dword [esp + 0x80], 0
je 0x5501c5
test esi, esi
je 0x54fa67
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x84]
mov edx, 0x45
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x84]
mov edx, edi
mov ecx, dword [esp + 0x80]
call fcn.004e3960
mov dword [esp + 0x80], edi
cmp dword [esp + 0x9c], 6
je 0x54fc8c
cmp dword [esp + 0x9c], 9
je 0x550536
cmp dword [esp + 0x9c], 8
jne 0x54fac3
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
mov ecx, dword [edx + 0x10]
mov esi, dword [esp + 0x48]
mov edx, dword [ecx + esi*8 + 4]
test edx, edx
je 0x5501d1
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x84]
xor ecx, ecx
call fcn.0044cfe0
mov edi, eax
jmp 0x54faee
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x62
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, edi
xor ecx, ecx
call fcn.004e3960
mov esi, dword [ebx]
test ebp, ebp
je 0x550500
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
cmp edx, eax
jg 0x54fc14
lea eax, [edx + edx]
lea eax, [eax + edx*8]
lea ecx, [eax*4 + 0x50]
mov eax, esi
mov edx, dword [ebp + 0xc]
call fcn.00490370
mov edx, eax
test edx, edx
jne 0x54fbf8
test edi, edi
je 0x54fb3c
mov eax, esi
mov edx, edi
call fcn.0044db10
test ebp, ebp
je 0x54fbf4
mov edx, dword [ebp + 0xc]
cmp dword [ebp], 0
jle 0x54fbe4
xor edi, edi
mov dword [esp + 0x44], ebx
mov ebx, edx
mov eax, esi
mov edx, dword [ebx]
call fcn.004cdfe0
mov eax, dword [ebx + 4]
test esi, esi
je 0x55020b
test eax, eax
je 0x54fb95
cmp eax, dword [esi + 0xf0]
jb 0x550201
cmp eax, dword [esi + 0xf4]
jae 0x550201
mov ecx, dword [esi + 0xec]
mov dword [eax], ecx
mov dword [esi + 0xec], eax
dec dword [esi + 0xe4]
mov eax, dword [ebx + 8]
test esi, esi
je 0x5501f8
test eax, eax
je 0x54fbd0
cmp eax, dword [esi + 0xf0]
jb 0x5501ee
cmp eax, dword [esi + 0xf4]
jae 0x5501ee
mov ecx, dword [esi + 0xec]
mov dword [eax], ecx
mov dword [esi + 0xec], eax
dec dword [esi + 0xe4]
inc edi
add ebx, 0x14
cmp edi, dword [ebp]
jl 0x54fb51
mov ebx, dword [esp + 0x44]
mov edx, dword [ebp + 0xc]
mov eax, esi
call fcn.004e33d8
mov eax, esi
mov edx, ebp
call fcn.004e33d8
xor ebp, ebp
jmp 0x54fc36
mov dword [ebp + 0xc], edx
mov eax, esi
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 4
mov dword [ebp + 4], edx
mov eax, dword [ebp]
lea ecx, [eax + eax*4]
mov edx, dword [ebp + 0xc]
inc eax
mov dword [ebp], eax
xor eax, eax
mov dword [edx + ecx*4], eax
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov dword [edx + ecx*4], edi
test ebp, ebp
je 0x54fc8c
mov eax, dword [ebp]
lea edx, [eax + eax*4]
mov dword [esp + 0x30], edx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x34], ecx
mov eax, dword [ebx]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
test esi, esi
je 0x550214
lea edx, [edi + 1]
call fcn.004a76c0
test eax, eax
je 0x54fc80
push edi
push esi
push eax
mov dword [esp + 0x38], eax
call fcn.007666b0
mov eax, dword [esp + 0x38]
add esp, 0xc
mov byte [eax + edi], 0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [edx + ecx*4 - 0x10], eax
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x90]
cmp eax, dword [edx + 0x14]
jl 0x54f6d4
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x84]
mov esi, edx
mov eax, ebp
mov edx, dword [esp + 0x8c]
call fcn.004e33d8
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], edx
test edx, edx
je 0x5504f5
mov eax, dword [esp + 0x54]
movsx edx, byte [eax]
test edx, edx
je 0x54fcf0
mov edx, dword [esp + 0x50]
inc edx
movsx eax, byte [edx]
test eax, eax
jne 0x54fce4
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x54]
and eax, 0x3fffffff
mov dword [esp + 0x50], eax
cmp dword [esp + 0x9c], 6
je 0x550261
xor eax, eax
mov dword [esp + 0x40], eax
movzx ecx, byte [ebp + 0xe2]
mov dword [esp + 0x48], ecx
mov byte [ebp + 0xe2], 0
mov edi, dword [esp + 0x50]
lea edx, [edi + 0x4d]
mov dword [esp + 0x28], edx
mov eax, ebp
call fcn.004a76c0
mov edi, eax
test edi, edi
je 0x54fd50
push dword [esp + 0x28]
push 0
push edi
call fcn.00766740
add esp, 0xc
test edi, edi
je 0x550010
lea eax, [edi + 0x24]
mov dword [esp + 0x4c], eax
mov dword [edi + 0x1c], eax
lea ecx, [edi + 0x4c]
mov dword [eax + 0xc], ecx
mov edx, dword [esp + 0x50]
mov dword [eax + 0x10], edx
push edx
push dword [esp + 0x58]
push ecx
call fcn.007666b0
add esp, 0xc
mov dword [esp + 0xc], 0
mov eax, ebp
mov edx, dword [esp + 0x94]
mov ecx, 1
call fcn.0044cfe0
mov dword [edi + 0x38], eax
cmp dword [esp + 0x58], 0
je 0x54ff8e
movzx eax, byte [ebp + 0x1e]
test eax, eax
jne 0x54ff8e
movzx eax, byte [ebp + 0xe2]
test eax, eax
je 0x54fdfe
movzx eax, word [ebp + 0xe0]
cmp eax, 0x10
jl 0x54fdfe
mov eax, dword [ebp + 0xec]
mov dword [esp + 0x28], eax
test eax, eax
je 0x54fdfe
mov edx, dword [eax]
mov dword [ebp + 0xec], edx
mov eax, dword [ebp + 0xe4]
inc eax
mov dword [ebp + 0xe4], eax
mov ecx, dword [ebp + 0xe8]
cmp eax, ecx
jge 0x54fdf6
mov eax, ecx
mov dword [ebp + 0xe8], eax
jmp 0x54fe17
mov eax, 0x10
call fcn.0041ebd4
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0
jne 0x54fe17
mov byte [ebp + 0x1e], 1
cmp dword [esp + 0x28], 0
je 0x54ff8e
mov eax, dword [esp + 0x28]
mov dword [eax + 8], 0
mov edx, dword [esp + 0x58]
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov ecx, dword [edx]
lea edx, [ecx + ecx*4]
shl edx, 2
mov eax, ebp
call fcn.004a76c0
mov edx, eax
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0xc], edx
test edx, edx
je 0x550229
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 0xc]
cmp dword [ecx], 0
jle 0x54ff94
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x84], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x90], esi
mov ebx, eax
mov ebp, edx
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x84]
mov edx, dword [ebx]
mov ecx, 1
call fcn.0044cfe0
mov dword [ebp], eax
mov esi, dword [ebx + 4]
test esi, esi
je 0x550222
mov edi, esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x54fec2
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x54feba
sub edi, esi
and edi, 0x3fffffff
inc edi
mov eax, dword [esp + 0x84]
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x54fef0
push edi
push esi
push eax
mov dword [esp + 0x5c], eax
call fcn.007666b0
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov dword [ebp + 4], eax
mov esi, dword [ebx + 8]
test esi, esi
je 0x55021b
mov edi, esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x54ff0f
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x54ff07
sub edi, esi
and edi, 0x3fffffff
inc edi
mov eax, dword [esp + 0x84]
mov edx, edi
call fcn.004a76c0
test eax, eax
je 0x54ff3d
push edi
push esi
push eax
mov dword [esp + 0x60], eax
call fcn.007666b0
mov eax, dword [esp + 0x60]
add esp, 0xc
mov dword [ebp + 8], eax
movzx ecx, byte [ebx + 0xc]
mov byte [ebp + 0xc], cl
mov byte [ebp + 0xd], 0
movzx esi, word [ebx + 0xe]
mov word [ebp + 0xe], si
movzx edi, word [ebx + 0x10]
mov word [ebp + 0x10], di
mov ecx, dword [esp + 0x5c]
inc ecx
mov dword [esp + 0x5c], ecx
add ebp, 0x14
add ebx, 0x14
mov esi, dword [esp + 0x58]
cmp ecx, dword [esi]
jl 0x54fe88
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x90]
jmp 0x54ff94
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [edi + 0x3c], eax
mov eax, ebp
mov edx, dword [esp + 0x40]
mov ecx, 1
call fcn.00572ab0
mov dword [edi + 0x2c], eax
cmp dword [esp + 0x80], 0
je 0x550016
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x13
xor ecx, ecx
call fcn.004e34a0
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
call fcn.004e3960
mov edx, dword [esp + 0x28]
mov dword [esp + 0x80], edx
mov dword [esp + 0xc], 0
mov eax, ebp
mov ecx, 1
call fcn.0044cfe0
mov dword [edi + 0xc], eax
jmp 0x550016
xor eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
mov byte [ebp + 0xe2], al
cmp dword [esp + 0x94], 0
je 0x550038
mov eax, ebp
mov edx, dword [esp + 0x94]
call fcn.0044db10
cmp dword [esp + 0x80], 0
je 0x550050
mov eax, ebp
mov edx, dword [esp + 0x80]
call fcn.0044db10
cmp dword [esp + 0x58], 0
je 0x55011b
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0xc]
cmp dword [eax], 0
jle 0x550109
xor ebx, ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x90], esi
mov esi, edx
mov edi, eax
mov eax, ebp
mov edx, dword [esi]
call fcn.004cdfe0
mov eax, dword [esi + 4]
test eax, eax
je 0x5500b8
cmp eax, dword [ebp + 0xf0]
jb 0x550257
cmp eax, dword [ebp + 0xf4]
jae 0x550257
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
mov dword [ebp + 0xec], eax
dec dword [ebp + 0xe4]
mov eax, dword [esi + 8]
test eax, eax
je 0x5500eb
cmp eax, dword [ebp + 0xf0]
jb 0x55024d
cmp eax, dword [ebp + 0xf4]
jae 0x55024d
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
mov dword [ebp + 0xec], eax
dec dword [ebp + 0xe4]
inc ebx
add esi, 0x14
cmp ebx, dword [edi]
jl 0x55007c
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0xc]
mov eax, ebp
call fcn.004e33d8
mov eax, ebp
mov edx, dword [esp + 0x58]
call fcn.004e33d8
cmp dword [esp + 0x40], 0
je 0x550138
mov eax, ebp
mov edx, dword [esp + 0x40]
call fcn.004ce330
mov eax, ebp
mov edx, dword [esp + 0x40]
call fcn.004e33d8
movzx eax, byte [ebp + 0x1e]
cmp eax, 1
je 0x550237
cmp dword [esp + 0x9c], 6
jne 0x550160
mov eax, dword [esp + 0x4c]
mov byte [eax], 0x74
cmp dword [esp + 0xc4], 0
jmp 0x55018e
cmp dword [esp + 0x9c], 9
je 0x550174
cmp dword [esp + 0xc4], 0
jmp 0x550187
cmp dword [esp + 0xc4], 0
jne 0x550187
mov eax, dword [esp + 0x4c]
mov byte [eax], 0x6a
jmp 0x55018e
mov eax, dword [esp + 0x4c]
mov byte [eax], 0x6b
mov ebp, eax
mov dword [ebp + 4], edi
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + 0x44]
mov dword [edi + 0x14], eax
mov ecx, dword [edx + 0x44]
mov dword [edi + 0x18], ecx
mov ebx, dword [esp + 0x98]
mov dword [esi + ebx*4 + 0x1c], edi
mov eax, 0x6b
jne 0x5501bd
mov eax, 0x6a
mov byte [edi + 8], al
jmp 0x54f653
mov dword [esp + 0x80], esi
jmp 0x54fa67
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x62
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
jmp 0x54fadb
call fcn.004c69c4
jmp 0x54fbd0
test eax, eax
jne 0x5501ee
jmp 0x54fbd0
call fcn.004c69c4
jmp 0x54fb95
test eax, eax
jne 0x550201
jmp 0x54fb95
xor eax, eax
jmp 0x54fc80
xor eax, eax
jmp 0x54ff3d
xor eax, eax
jmp 0x54fef0
mov eax, ebp
mov edx, ecx
call fcn.004e33d8
jmp 0x54ff8e
mov eax, ebp
mov edx, edi
call fcn.005505f0
xor eax, eax
add esp, 0xa4
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.004c69c4
jmp 0x5500eb
call fcn.004c69c4
jmp 0x5500b8
mov eax, dword [esp + 0x54]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x50]
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], str.foreign_key_constraint_failed
mov eax, str.foreign_key_constraint_failed
mov edx, eax
inc eax
movsx ecx, byte [eax]
test ecx, ecx
jne 0x550280
sub eax, edx
and eax, 0x3fffffff
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], 0
mov eax, ebp
mov edx, 0x38
lea ecx, [esp + 0x2c]
call fcn.004e34a0
mov dword [esp + 0x40], eax
cmp dword [esp + 0x40], 0
je 0x5502ba
mov byte [eax + 1], 2
mov eax, dword [ebx]
mov dword [esp + 0x28], eax
mov edx, 0x10
call fcn.004a76c0
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0
je 0x550369
mov edx, eax
xor eax, eax
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov eax, edx
mov edx, dword [eax + 4]
mov ecx, dword [eax]
cmp edx, ecx
jg 0x55033b
lea edi, [edx + edx]
lea eax, [edi + edx*8]
lea ecx, [eax*4 + 0x50]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0xc]
call fcn.00490370
mov edx, eax
test edx, edx
je 0x550369
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0xc], edx
mov eax, dword [esp + 0x28]
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 4
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 4], edx
mov ecx, dword [ecx]
lea eax, [ecx + ecx*4]
mov edi, dword [esp + 0x3c]
mov edx, dword [edi + 0xc]
inc ecx
mov dword [edi], ecx
xor ecx, ecx
mov dword [edx + eax*4], ecx
mov dword [edx + eax*4 + 4], ecx
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ecx
mov dword [edx + eax*4 + 0x10], ecx
mov ecx, dword [esp + 0x40]
mov dword [edx + eax*4], ecx
jmp 0x550476
cmp dword [esp + 0x40], 0
je 0x55037d
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
call fcn.0044db10
cmp dword [esp + 0x3c], 0
je 0x55046e
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
cmp dword [eax], 0
jle 0x550458
xor edi, edi
mov dword [esp + 0x84], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x90], esi
mov ebx, edx
mov esi, eax
mov ebp, dword [esp + 0x28]
mov eax, ebp
mov edx, dword [ebx]
call fcn.004cdfe0
mov eax, dword [ebx + 4]
test ebp, ebp
je 0x5504ec
test eax, eax
je 0x5503f8
cmp eax, dword [ebp + 0xf0]
jb 0x5504e2
cmp eax, dword [ebp + 0xf4]
jae 0x5504e2
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
mov dword [ebp + 0xec], eax
dec dword [ebp + 0xe4]
mov eax, dword [ebx + 8]
test ebp, ebp
je 0x5504d9
test eax, eax
je 0x550433
cmp eax, dword [ebp + 0xf0]
jb 0x5504cf
cmp eax, dword [ebp + 0xf4]
jae 0x5504cf
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
mov dword [ebp + 0xec], eax
dec dword [ebp + 0xe4]
inc edi
add ebx, 0x14
cmp edi, dword [esi]
jl 0x5503b4
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x28]
call fcn.004e33d8
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
call fcn.004e33d8
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], 0
mov eax, ebp
xor edx, edx
lea ecx, [esp + 0x34]
call fcn.005569f0
mov ecx, eax
mov edi, dword [esp + 0x94]
mov dword [esp + 0xc], edi
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov eax, ebx
mov edx, dword [esp + 0x3c]
call fcn.004f09c0
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x94], eax
jmp 0x54fd15
call fcn.004c69c4
jmp 0x550433
test eax, eax
jne 0x5504cf
jmp 0x550433
call fcn.004c69c4
jmp 0x5503f8
test eax, eax
jne 0x5504e2
jmp 0x5503f8
xor eax, eax
mov dword [esp + 0x50], eax
jmp 0x54fd01
mov eax, esi
mov edx, 0x10
call fcn.004a76c0
mov ebp, eax
test ebp, ebp
je 0x550523
mov eax, 0
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
jne 0x54faf8
test edi, edi
jne 0x54fb2b
jmp 0x54fb34
cmp dword [esp + 0xc4], 0
je 0x54fc8c
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x68]
call fcn.004e34a0
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, dword [esp + 0x28]
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x1a
lea ecx, [esp + 0x70]
call fcn.004e34a0
mov esi, eax
mov dword [esp + 0xc], 0
mov eax, dword [ebx]
mov edx, esi
xor ecx, ecx
call fcn.004e3960
mov dword [esp + 0xc], 1
mov eax, dword [ebx]
mov edx, 0x76
xor ecx, ecx
call fcn.004e34a0
mov edi, eax
mov dword [esp + 0xc], esi
mov eax, dword [ebx]
mov edx, edi
mov ecx, dword [esp + 0x28]
call fcn.004e3960
jmp 0x54faee
mov dword [esp + 0x94], esi
jmp 0x54f8d5
xor edx, edx
jmp 0x54f7a7
xor ecx, ecx
jmp 0x54f782